From b8dc44d17127a54d2242477e4f0f9d8c6ac236e0 Mon Sep 17 00:00:00 2001 From: Evan Lezar Date: Wed, 17 Jun 2026 10:33:10 +0200 Subject: [PATCH 1/2] fix(helm): build chart dependencies before lint Signed-off-by: Evan Lezar --- tasks/helm.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tasks/helm.toml b/tasks/helm.toml index 31788088a..f25dadb09 100644 --- a/tasks/helm.toml +++ b/tasks/helm.toml @@ -26,6 +26,7 @@ hide = true description = "Lint the openshell Helm chart (defaults + all CI configuration variants)" run = """ set -e + helm dependency build deploy/helm/openshell echo "--- helm lint: defaults ---" echo "values files: deploy/helm/openshell/values.yaml" helm lint deploy/helm/openshell @@ -45,6 +46,7 @@ run = """ if ! helm plugin list | grep -q unittest; then helm plugin install https://github.com/helm-unittest/helm-unittest --verify=false fi + helm dependency build deploy/helm/openshell helm unittest deploy/helm/openshell """ From 70c59caee9429e4c4f903b3f829e227ea922d41d Mon Sep 17 00:00:00 2001 From: Evan Lezar Date: Tue, 16 Jun 2026 14:30:48 +0200 Subject: [PATCH 2/2] test(e2e): remove python gpu smoke test Remove the Python GPU smoke test and its fixture. The e2e:k3s:gpu task only depended on e2e:python:gpu and did not have a separate k3s implementation, so remove that stale alias with the task it pointed at. Signed-off-by: Evan Lezar (cherry picked from commit 221a10378e188656c710560740cbc9463c002db6) --- e2e/python/conftest.py | 13 ------------- e2e/python/test_sandbox_gpu.py | 30 ------------------------------ tasks/test.toml | 10 ---------- 3 files changed, 53 deletions(-) delete mode 100644 e2e/python/test_sandbox_gpu.py diff --git a/e2e/python/conftest.py b/e2e/python/conftest.py index 712704929..07b7feb34 100644 --- a/e2e/python/conftest.py +++ b/e2e/python/conftest.py @@ -11,7 +11,6 @@ import pytest from openshell import InferenceRouteClient, Sandbox, SandboxClient -from openshell._proto import datamodel_pb2 if TYPE_CHECKING: from collections.abc import Callable, Iterator @@ -92,15 +91,3 @@ def _run(sandbox: Sandbox, code: str) -> tuple[int, str, str]: return result.exit_code, result.stdout, result.stderr return _run - - -@pytest.fixture(scope="session") -def gpu_sandbox_spec() -> datamodel_pb2.SandboxSpec: - # Empty string defers image resolution to the server, which substitutes - # the configured default sandbox image. Set OPENSHELL_E2E_GPU_IMAGE to - # override (e.g. a locally-built or registry-mirrored image). - image = os.environ.get("OPENSHELL_E2E_GPU_IMAGE", "") - return datamodel_pb2.SandboxSpec( - gpu=True, - template=datamodel_pb2.SandboxTemplate(image=image), - ) diff --git a/e2e/python/test_sandbox_gpu.py b/e2e/python/test_sandbox_gpu.py deleted file mode 100644 index 510b3d92d..000000000 --- a/e2e/python/test_sandbox_gpu.py +++ /dev/null @@ -1,30 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -from __future__ import annotations - -from typing import TYPE_CHECKING - -import pytest - -from openshell._proto import datamodel_pb2 - -if TYPE_CHECKING: - from collections.abc import Callable - - from openshell import Sandbox - - -@pytest.mark.gpu -def test_gpu_sandbox_reports_available_gpu( - sandbox: Callable[..., Sandbox], - gpu_sandbox_spec: datamodel_pb2.SandboxSpec, -) -> None: - with sandbox(spec=gpu_sandbox_spec, delete_on_exit=True) as sb: - result = sb.exec( - ["nvidia-smi", "--query-gpu=name", "--format=csv,noheader"], - timeout_seconds=30, - ) - - assert result.exit_code == 0, result.stderr - assert result.stdout.strip() diff --git a/tasks/test.toml b/tasks/test.toml index cf031bd6f..d2e8d642d 100644 --- a/tasks/test.toml +++ b/tasks/test.toml @@ -36,10 +36,6 @@ depends = ["e2e:docker:gpu"] description = "Build local GPU workload test images and manifest" run = "bash tasks/scripts/e2e-gpu-build-images.sh" -["e2e:k3s:gpu"] -description = "Run k3s GPU end-to-end tests" -depends = ["e2e:python:gpu"] - ["test:rust"] description = "Run Rust tests" run = [ @@ -77,12 +73,6 @@ depends = ["python:proto"] env = { UV_NO_SYNC = "1", PYTHONPATH = "python" } run = "e2e/with-docker-gateway.sh uv run pytest -o python_files='test_*.py' -m 'not gpu' -n ${E2E_PARALLEL:-5} e2e/python" -["e2e:python:gpu"] -description = "Run Python GPU e2e tests" -depends = ["python:proto"] -env = { UV_NO_SYNC = "1", PYTHONPATH = "python", OPENSHELL_E2E_DOCKER_GPU = "1" } -run = "e2e/with-docker-gateway.sh uv run pytest -o python_files='test_*.py' -m gpu -n ${E2E_PARALLEL:-1} e2e/python" - ["e2e:podman"] description = "Run Rust CLI e2e tests against a Podman-backed gateway" run = "e2e/rust/e2e-podman.sh"