Skip to content

fix(e2e): use --active to skip per-project venv sync in provisioner#329

Merged
runpod-Henrik merged 5 commits intomainfrom
Henrik/fix-e2e-provisioner-uv-active
Apr 28, 2026
Merged

fix(e2e): use --active to skip per-project venv sync in provisioner#329
runpod-Henrik merged 5 commits intomainfrom
Henrik/fix-e2e-provisioner-uv-active

Conversation

@runpod-Henrik
Copy link
Copy Markdown
Contributor

@runpod-Henrik runpod-Henrik commented Apr 28, 2026

Summary

  • provisioner.py ran uv run flash deploy in a temp project dir whose pyproject.toml declared runpod-flash @ git+https://github.com/runpod/runpod-flash@<sha>
  • On CI, uv tried to sync that dep before running the command, hitting the private repo with no git credentials → fatal: could not read Username
  • The outer CI venv (uv sync --all-groups) already has the correct flash version installed

Fix

Use --no-project so uv skips project discovery entirely and uses the outer CI venv without touching the private git dep. (--active alone is not sufficient — uv still reads the pyproject.toml and tries to sync into the active env.)

Test plan

Re-run the E2E workflow — the provisioner deploy step should no longer fail with a git auth error.

🤖 Generated with Claude Code

uv run without --active creates a project-specific venv from the temp
dir's pyproject.toml, which contains runpod-flash @ git+https://...
The private repo fetch fails on CI runners that have no git credentials.

The outer CI venv (uv sync --all-groups) already has the correct flash
version installed, so --active uses it directly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
runpod-Henrik and others added 4 commits April 28, 2026 11:40
--active was not sufficient: uv still reads the pyproject.toml and tries
to sync the git dep into the active env, hitting the same auth wall.
--no-project skips project discovery entirely so uv uses the outer CI
venv (which already has the correct flash installed) without touching
the private git dep.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Same fix as provisioner.py: all deploy/undeploy calls in test files run
in temp dirs with a pyproject.toml that references the private git dep,
causing uv to attempt an authenticated fetch before executing the command.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…release

provisioner.py: --no-project skips the temp project venv, so extra_deps
(numpy, pandas) aren't installed when flash validates the worker import.
Pass each extra dep as --with <dep> so uv injects them into the run env.

test_rolling_release.py: the "updating endpoint" check reads from
log.debug() in serverless.py. LOG_LEVEL=INFO silences it; switch to DEBUG.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@runpod-Henrik runpod-Henrik merged commit 9f7ccfa into main Apr 28, 2026
7 checks passed
@runpod-Henrik runpod-Henrik deleted the Henrik/fix-e2e-provisioner-uv-active branch April 28, 2026 19:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants