ci: point uv at the baked venv so tests pass on the /next runner image - #509
ci: point uv at the baked venv so tests pass on the /next runner image#509HarikrishnanBalagopal wants to merge 1 commit into
Conversation
The ARC runner sets now boot from the icr.io/ai_sw_accel/2.0/next/<product> images, which ship the project venv baked and activated at /home/senuser/.venv. Without telling uv about it, `uv run` re-creates an empty project .venv and re-syncs on every card job, so each Spyre test breaks at setup. Set UV_NO_SYNC=1 and UV_PROJECT_ENVIRONMENT=/home/senuser/.venv at the _test_matrix.yaml top level so uv reuses the baked venv and skips the implicit sync. Neutralize both on the ubuntu-hosted check-uv-lock job, which has no baked venv and would otherwise fail inside setup-uv. Drop the now-redundant `source .venv/bin/activate` from the two model-module-tests steps. Echo VIRTUAL_ENV / UV_NO_SYNC / UV_PROJECT_ENVIRONMENT from gather-runner-info for diagnostics. This mirrors spyre-frameworks PR #1390, which bakes the same vars into the image layer; the workflow-level fix keeps CI green on the /next runners until that image rebuild lands. Signed-off-by: Harikrishnan Balagopal <Harikrishnan.Balagopal@ibm.com>
6e8d63c to
2dfac34
Compare
|
⚙️ Auto-merge enabled — dispatched Automated: enabling auto-merge requests the gate, so the PR is not left waiting on a check nobody asked for. Re-enabling auto-merge on this same commit will not dispatch again. |
❌ spyre-test: failureTriggered by: /spyre-test comment Plan (build waves + dependencies, per arch)amd64 flowchart LR
subgraph Lamd64_0["amd64 L0 · 1 parallel"]
n_amd64_torch_spyre_torch_spyre_dev["torch-spyre/torch-spyre-dev 🔴<br/>image · 16ec4926d4c8"]
end
subgraph Lamd64_1["amd64 L1 · 1 parallel"]
n_amd64_hf_adapters_hf_adapters_dev["hf-adapters/hf-adapters-dev 🟢<br/>image · 0aa666e8acc0"]
end
subgraph Lamd64_2["amd64 L2 · 1 parallel"]
n_amd64_spyre_inference_spyre_inference_dev["spyre-inference/spyre-inference-dev 🔴<br/>image · b8b89d99752a"]
end
n_amd64_torch_spyre_torch_spyre_dev --> n_amd64_hf_adapters_hf_adapters_dev
n_amd64_hf_adapters_hf_adapters_dev --> n_amd64_spyre_inference_spyre_inference_dev
classDef sPending fill:#eceff1,stroke:#90a4ae,color:#37474f
classDef sBuilding fill:#fff8e1,stroke:#f9a825,color:#5d4037,stroke-width:2px
classDef sOk fill:#e8f5e9,stroke:#43a047,color:#1b5e20
classDef sReused fill:#e3f2fd,stroke:#1e88e5,color:#0d47a1
classDef sFailed fill:#ffebee,stroke:#e53935,color:#b71c1c,stroke-width:2px
classDef sDropped fill:#f5f5f5,stroke:#bdbdbd,color:#9e9e9e
class n_amd64_torch_spyre_torch_spyre_dev sOk;
class n_amd64_hf_adapters_hf_adapters_dev sOk;
class n_amd64_spyre_inference_spyre_inference_dev sOk;
✅ orch trigger-pr-validation — green · arches amd64 · fp amd64=5d4c7455
GHA test runs:
|
|
GHA test runs:
|
|
GHA test runs:
|
|
GHA test runs:
|
|
/spyre-test |
❌ spyre-test: failureTriggered by: /spyre-test comment: #509 (comment) Plan (build waves + dependencies, per arch)amd64 flowchart LR
subgraph Lamd64_0["amd64 L0 · 1 parallel"]
n_amd64_spyre_backend_spyre_backend_dev["spyre-backend/spyre-backend-dev ↺<br/>image · eddfefe0e289"]
end
subgraph Lamd64_1["amd64 L1 · 1 parallel"]
n_amd64_torch_spyre_torch_spyre_dev["torch-spyre/torch-spyre-dev 🔴 ↺<br/>image · 09ec21ef38de"]
end
subgraph Lamd64_2["amd64 L2 · 1 parallel"]
n_amd64_hf_adapters_hf_adapters_dev["hf-adapters/hf-adapters-dev 🔴<br/>image · 00f2afeac7d0"]
end
subgraph Lamd64_3["amd64 L3 · 1 parallel"]
n_amd64_spyre_inference_spyre_inference_dev["spyre-inference/spyre-inference-dev 🔴<br/>image · 94e8d8cd9da3"]
end
n_amd64_spyre_backend_spyre_backend_dev --> n_amd64_torch_spyre_torch_spyre_dev
n_amd64_torch_spyre_torch_spyre_dev --> n_amd64_hf_adapters_hf_adapters_dev
n_amd64_hf_adapters_hf_adapters_dev --> n_amd64_spyre_inference_spyre_inference_dev
classDef sPending fill:#eceff1,stroke:#90a4ae,color:#37474f
classDef sBuilding fill:#fff8e1,stroke:#f9a825,color:#5d4037,stroke-width:2px
classDef sOk fill:#e8f5e9,stroke:#43a047,color:#1b5e20
classDef sReused fill:#e3f2fd,stroke:#1e88e5,color:#0d47a1
classDef sFailed fill:#ffebee,stroke:#e53935,color:#b71c1c,stroke-width:2px
classDef sDropped fill:#f5f5f5,stroke:#bdbdbd,color:#9e9e9e
class n_amd64_spyre_backend_spyre_backend_dev sReused;
class n_amd64_torch_spyre_torch_spyre_dev sReused;
class n_amd64_hf_adapters_hf_adapters_dev sOk;
class n_amd64_spyre_inference_spyre_inference_dev sOk;
✅ orch trigger-pr-validation — green · arches amd64 · fp amd64=059f8ea6
GHA test runs:
|
|
This change is complete and does what it says. On the live Result on the latest run (34496557541): 129 pass, 8 fail (down from a full-matrix collection failure without this change). The 8 remaining failures are all external to this PR:
No remaining failure is caused by this change. The venv fix itself is proven by the 129 green card jobs that previously could not even collect. Once the |
|
GHA test runs:
|
|
GHA test runs:
|
|
GHA test runs:
|
|
/spyre-test |
❌ spyre-test: failureTriggered by: /spyre-test comment: #509 (comment) Plan (build waves + dependencies, per arch)amd64 flowchart LR
subgraph Lamd64_0["amd64 L0 · 1 parallel"]
n_amd64_spyre_backend_spyre_backend_dev["spyre-backend/spyre-backend-dev ↺<br/>image · b6af73edcd2c"]
end
subgraph Lamd64_1["amd64 L1 · 1 parallel"]
n_amd64_torch_spyre_torch_spyre_dev["torch-spyre/torch-spyre-dev 🔴 ↺<br/>image · fc1752087216"]
end
subgraph Lamd64_2["amd64 L2 · 1 parallel"]
n_amd64_hf_adapters_hf_adapters_dev["hf-adapters/hf-adapters-dev 🟢<br/>image · 7dc77fe364ea"]
end
subgraph Lamd64_3["amd64 L3 · 1 parallel"]
n_amd64_spyre_inference_spyre_inference_dev["spyre-inference/spyre-inference-dev 🔴<br/>image · c28982d013ad"]
end
n_amd64_spyre_backend_spyre_backend_dev --> n_amd64_torch_spyre_torch_spyre_dev
n_amd64_torch_spyre_torch_spyre_dev --> n_amd64_hf_adapters_hf_adapters_dev
n_amd64_hf_adapters_hf_adapters_dev --> n_amd64_spyre_inference_spyre_inference_dev
classDef sPending fill:#eceff1,stroke:#90a4ae,color:#37474f
classDef sBuilding fill:#fff8e1,stroke:#f9a825,color:#5d4037,stroke-width:2px
classDef sOk fill:#e8f5e9,stroke:#43a047,color:#1b5e20
classDef sReused fill:#e3f2fd,stroke:#1e88e5,color:#0d47a1
classDef sFailed fill:#ffebee,stroke:#e53935,color:#b71c1c,stroke-width:2px
classDef sDropped fill:#f5f5f5,stroke:#bdbdbd,color:#9e9e9e
class n_amd64_spyre_backend_spyre_backend_dev sReused;
class n_amd64_torch_spyre_torch_spyre_dev sReused;
class n_amd64_hf_adapters_hf_adapters_dev sOk;
class n_amd64_spyre_inference_spyre_inference_dev sOk;
✅ orch trigger-pr-validation — green · arches amd64 · fp amd64=913da65a
GHA test runs:
|
|
GHA test runs:
|
|
GHA test runs:
|
|
GHA test runs:
|
What this does
The ARC self-hosted runner sets have been switched to boot from the
icr.io/ai_sw_accel/2.0/next/<product>:amd64-devimages (spyre-frameworksmerge, live). Those images ship the project venv baked and activated at
/home/senuser/.venv. With no hint to uv,uv runre-creates an empty project.venvand re-syncs on every card job, so each Spyre test breaks at setup.This sets uv to reuse the baked venv:
_test_matrix.yamltop-levelenv:gainsUV_NO_SYNC: "1"andUV_PROJECT_ENVIRONMENT: /home/senuser/.venv, souv runpoints at the bakedvenv and skips its implicit sync.
check uv.lockjob (ubuntu-latest, no baked venv) blanks both vars atjob level, so the top-level values do not leak into
setup-uv@v5and fail it.make model-module-testssteps drop the now-redundantsource .venv/bin/activate.gather-runner-infoechoesVIRTUAL_ENV/UV_NO_SYNC/UV_PROJECT_ENVIRONMENTfor diagnostics.Why at the workflow level
This mirrors spyre-frameworks PR #1390, which bakes the same two vars into the
image layer. That PR is not yet merged, so the workflow-level fix keeps CI green
on the
/nextrunners in the meantime. Once #1390 lands and the image carriesthe vars, this top-level
env:can be removed.Issue
https://github.com/torch-spyre/hf-adapters/actions/runs/34507171144/job/102972671665?pr=183#step:5:22
Validation
The identical change was validated on the shadow branch
(
shadow-resource-validation-v2, PR #329) against the fresh/nextimage: thecard suites went from all-red-at-setup to green (~124 card jobs), the 3 VLM e2e
legs passed, and the only residual reds were image-independent (a Wikimedia HTTP
429 on the CLIP fixture download, which also flakes on the legacy control, and
the
check uv.lockenv leak this PR fixes). Shadow run:https://github.com/torch-spyre/hf-adapters/actions/runs/34478885987
This is the non-shadow production version: it excludes the shadow-only
image_torch_spyre_shadowlabel swap intest_pull_request.yaml, so it targetsthe real prod runner labels.