diff --git a/.woodpecker/e2e-convert-jetson.yml b/.woodpecker/e2e-convert-jetson.yml index 03f8d3a..9d4f9c3 100644 --- a/.woodpecker/e2e-convert-jetson.yml +++ b/.woodpecker/e2e-convert-jetson.yml @@ -8,8 +8,16 @@ labels: steps: - name: e2e-convert-jetson image: docker + environment: + REGISTRY_HOST: + from_secret: registry_host + REGISTRY_USER: + from_secret: registry_user + REGISTRY_TOKEN: + from_secret: registry_token commands: - apk add --no-cache bash docker-cli-compose + - echo "$REGISTRY_TOKEN" | docker login "$REGISTRY_HOST" -u "$REGISTRY_USER" --password-stdin - cd e2e - > E2E_PROFILE=jetson @@ -17,5 +25,6 @@ steps: E2E_ENGINE_WAIT_TIMEOUT=3600 E2E_LOG_TAIL=300 bash run_test.sh tests/test_health_engine.py::TestHealthEngineStep03Warmed + - bash scripts/publish_jetson_engine.sh volumes: - /var/run/docker.sock:/var/run/docker.sock diff --git a/.woodpecker/e2e-smoke-jetson.yml b/.woodpecker/e2e-smoke-jetson.yml index 5b7c4c8..d3adc1d 100644 --- a/.woodpecker/e2e-smoke-jetson.yml +++ b/.woodpecker/e2e-smoke-jetson.yml @@ -8,9 +8,18 @@ labels: steps: - name: e2e-smoke-jetson image: docker + environment: + REGISTRY_HOST: + from_secret: registry_host + REGISTRY_USER: + from_secret: registry_user + REGISTRY_TOKEN: + from_secret: registry_token commands: - apk add --no-cache bash docker-cli-compose + - echo "$REGISTRY_TOKEN" | docker login "$REGISTRY_HOST" -u "$REGISTRY_USER" --password-stdin - cd e2e + - bash scripts/pull_jetson_engine.sh - E2E_PROFILE=jetson bash run_test.sh tests/test_health_engine.py volumes: - /var/run/docker.sock:/var/run/docker.sock diff --git a/e2e/mocks/loader/app.py b/e2e/mocks/loader/app.py index 724859a..c46a3bd 100644 --- a/e2e/mocks/loader/app.py +++ b/e2e/mocks/loader/app.py @@ -31,6 +31,16 @@ def _resolve_disk_path(filename: str, folder: str | None) -> Path | None: return None +def _write_disk_path(filename: str, folder: str | None, data: bytes) -> Path: + root = _models_root() + safe_filename = Path(filename).name + target_dir = root / folder if folder else root + target_dir.mkdir(parents=True, exist_ok=True) + target = target_dir / safe_filename + target.write_bytes(data) + return target + + def _should_fail_load() -> bool: global _first_fail_remaining if _mode == "error": @@ -73,7 +83,9 @@ def upload(filename): f = request.files.get("data") if not f: return "", 400 - _uploads[(folder, filename)] = f.read() + data = f.read() + _uploads[(folder, filename)] = data + _write_disk_path(filename, folder, data) _upload_count += 1 return "", 200