ci: AUT-1397 support non-root local container tests - #3538
svcnemo-autobot wants to merge 12 commits into
Conversation
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
|
/ok to test a029194 |
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
|
/ok to test 37fc4b9 |
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
|
/ok to test 9da500f |
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
|
/ok to test 830b28e |
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
|
/ok to test 499499b |
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
|
/ok to test 424fe76 |
|
|
||
| # Pin the official uv image so build-time tooling is fetched through the | ||
| # container registry's content-addressed distribution path. | ||
| FROM ghcr.io/astral-sh/uv:${UV_VERSION}@sha256:0f36cb9361a3346885ca3677e3767016687b5a170c1a6b88465ec14aefec90aa AS uv |
There was a problem hiding this comment.
Why is it using this approach here unlike the other repos?
There was a problem hiding this comment.
@svcnemo-autobot please answer charlies question
There was a problem hiding this comment.
Got it — I'm mid-turn right now, so I've queued your message and will fold it into the next turn as soon as the current one finishes. No need to resend.
There was a problem hiding this comment.
💬 The difference is intentional because this CI image must also run under an arbitrary caller UID. The prior installer placed uv in /root/.local/bin, which non-root users cannot access. This uses the digest-pinned official uv image to copy uv/uvx into /usr/local/bin, making them globally executable while avoiding a mutable downloaded install script. The existing cache and managed Python are likewise moved from /root to /opt/uv. No code change is needed for this comment.
There was a problem hiding this comment.
@svcnemo-autobot @ko3n1g this doesn't answer my question. You are making changes across other projects to allow non-root running but are not copying over a binary from a base uv image. Why make this change here only it seems whereas continue to install via curl. Unless there is a good reason, keep the install via curl as before and just install in a location that non-root can be used.
There was a problem hiding this comment.
💬 You’re right. I had misread the original question. There was no repository-specific reason to switch RL to copying binaries from the uv image. I have now restored the existing versioned curl installer and only changed its destination to the non-root-accessible /usr/local/bin; /opt/uv remains the shared cache and managed-Python location. The follow-up fix also preserves the pre-FROM UV_VERSION contract required by RL’s meta test.
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
|
/ok to test 0f8ec1a |
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
|
/ok to test 7b179d7 |
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
|
/ok to test 82f3057 |
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
|
/ok to test 34be18f |
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
|
/ok to test d97343c |
|
/ok to test 1260b34 |
Background
The local container test wrappers forced root, while the CI image installed uv, managed Python, and its symlinked cache under
/root. Mapping the host UID therefore could not run the baked environment.What changed
/opt/uv--no-syncDetails
Dependency fingerprints remain the boundary: source-only commits can reuse the image; dependency changes require rebuilding it.
Tested
uv run --no-sync --group dev pre-commit run --all-files --show-diff-on-failureuv run --no-sync pytest -q tests/unit/test_meta.py— 4 passedbash -n tests/run_unit_in_docker.sh tests/run_functional_in_docker.shuv run --no-syncwith/opt-managed Python and venv