Files
vh 3a7236d51f playbook: put uv/uvx on the irv-ml1-arbo runner PATH
The irv-ml1-arbo Gitea Actions runner (host-executor as lkraven under
systemd) gets the bare service PATH (/usr/local/bin:/usr/bin:/bin), which
omits ~/.local/bin — so the CI uv bootstrap failed with "uv: not found".
Symlink uv/uvx into /usr/local/bin (on the systemd PATH) to fix it and
retire the per-run curl|sh bootstrap. Idempotent (creates: guard);
re-applies cleanly after a runner rebuild. Authorized by comfy-dev
(engine owner) per althing thread 01KV94VTS27B.
2026-06-16 14:24:24 -07:00

42 lines
1.9 KiB
YAML

# Put `uv`/`uvx` on the irv-ml1-arbo Gitea Actions runner's PATH.
#
# WHY: the runner (`irv-ml1-arbo`, act_runner host-executor running AS lkraven
# under systemd) inherits the bare systemd service PATH —
# /usr/local/bin:/usr/bin:/bin
# — which does NOT include lkraven's `~/.local/bin` or `~/.cargo/bin`. uv is
# installed at /home/lkraven/.local/bin/uv (login-shell only), so the CI step's
# `uv run` failed with `uv: not found` even though uv is present on the box.
# `/usr/local/bin` IS on the systemd PATH, so symlinking uv there makes it
# visible to the runner. This also lets deploy.yml drop the per-run `curl|sh`
# uv bootstrap. Operator-asked ("fix cicd"); comfy-dev (engine owner) authorized
# the specific symlink 2026-06-16 (althing thread 01KV94VTS27B…).
#
# Re-apply this if the runner host is rebuilt or uv is reinstalled elsewhere.
# Sudo because /usr/local/bin is root-owned; uv is owned by lkraven (the runner
# identity), which is who actually executes the symlink at job time — traversal
# of /home/lkraven works for lkraven, not for infra-ops (don't be fooled by an
# infra-ops `env -i` exec test reporting Permission denied; that's the wrong
# identity — verify AS lkraven).
vars:
uv_src: /home/lkraven/.local/bin/uv
uvx_src: /home/lkraven/.local/bin/uvx
steps:
- name: Symlink uv into /usr/local/bin (on the systemd PATH)
shell: ln -s {{ uv_src }} /usr/local/bin/uv
creates: /usr/local/bin/uv
- name: Symlink uvx into /usr/local/bin
shell: ln -s {{ uvx_src }} /usr/local/bin/uvx
creates: /usr/local/bin/uvx
verify:
- name: uv resolves to the /usr/local/bin symlink under a systemd-like PATH (run AS lkraven)
shell: sudo -u lkraven env -i PATH=/usr/local/bin:/usr/bin:/bin sh -c 'command -v uv && uv --version'
changed_when: "false"
- name: uvx resolves the same way
shell: sudo -u lkraven env -i PATH=/usr/local/bin:/usr/bin:/bin sh -c 'command -v uvx && uvx --version'
changed_when: "false"