fix(ci): install uv via official script, not astral-sh/setup-uv action
Build & push images / images (push) Successful in 2m49s
CI / check (push) Successful in 35s

The Gitea runner can't reliably resolve the astral-sh/setup-uv@v5 action — the
"Set up uv" step failed (exit 1) in build-images.yml (and the same step exists in
ci.yml). Replace the action with uv's official standalone install script
(`curl -LsSf https://astral.sh/uv/install.sh | sh`) + add $HOME/.local/bin to
$GITHUB_PATH, matching how the rest of the pipeline provisions tools (apt, corepack).
No third-party action dependency. Verified the install method yields a working uv on
a clean HOME. Same fix in both workflows.

Claude-Session: https://claude.ai/code/session_01Xcm6ikLgGoCxxHrxtjkk5V
This commit is contained in:
2026-06-23 15:59:10 +02:00
parent 9d65099d9b
commit 0a22eab4a8
2 changed files with 12 additions and 4 deletions
+6 -1
View File
@@ -44,7 +44,12 @@ jobs:
run: pnpm install --frozen-lockfile run: pnpm install --frozen-lockfile
- name: Set up uv (for @parking/vision checks) - name: Set up uv (for @parking/vision checks)
uses: astral-sh/setup-uv@v5 # Install uv via its official standalone script rather than a third-party action —
# the Gitea runner can't reliably resolve astral-sh/setup-uv. uv provisions the
# pinned Python (apps/vision/.python-version) itself. Add it to PATH for later steps.
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
- name: Sync vision deps - name: Sync vision deps
working-directory: apps/vision working-directory: apps/vision
+6 -3
View File
@@ -35,9 +35,12 @@ jobs:
# The vision service is a Python package wired into the Turbo graph via a # The vision service is a Python package wired into the Turbo graph via a
# package.json shim; its lint/typecheck/test scripts shell to `uv run …`. CI # package.json shim; its lint/typecheck/test scripts shell to `uv run …`. CI
# has no Python by default, so `uv run` would fail with "uv: not found" and # has no Python by default, so `uv run` would fail with "uv: not found" and
# break the whole Turbo run. uv provisions the pinned Python (.python-version) # break the whole Turbo run. Install uv via its official standalone script
# itself. See wiki/decisions/vision-service-packaging.md. # (the Gitea runner can't reliably resolve astral-sh/setup-uv); uv provisions the
uses: astral-sh/setup-uv@v5 # pinned Python (.python-version) itself. See wiki/decisions/vision-service-packaging.md.
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
- name: Sync vision deps - name: Sync vision deps
# Light deps + the dev group (ruff/mypy/pytest) only — NOT the optional `alpr` # Light deps + the dev group (ruff/mypy/pytest) only — NOT the optional `alpr`