Skip to content

Commit 75999cb

Browse files
ci(.github/workflows): self-install Python 3.11 via uv on the peco-driver runner
actions/setup-python can't provision Python on the self-hosted peco-driver runner (no GitHub hosted tool-cache; it can't reach the version manifest — "version 3.11 not found for this operating system"). Replace it in all four bot workflows with a self-contained step that fetches Python itself: - bootstrap uv from PyPI via the system python3 (the runner already reaches PyPI — it pip-installs claude-agent-sdk), - `uv venv --python 3.11 --seed` pulls a standalone CPython 3.11 from GitHub (already reachable — the engine installs from github.com) into a seeded venv (with pip), put on PATH so later `pip`/`python -m` steps are unchanged. No runner provisioning or root needed. Co-authored-by: Isaac
1 parent 2e3e239 commit 75999cb

4 files changed

Lines changed: 48 additions & 12 deletions

File tree

.github/workflows/engineer-bot-followup.yml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,9 +178,18 @@ jobs:
178178
179179
- name: Setup Python
180180
if: steps.filter.outputs.skip != 'true'
181-
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
182-
with:
183-
python-version: '3.11'
181+
shell: bash
182+
# actions/setup-python can't provision on this self-hosted runner
183+
# (no hosted tool-cache, can't reach the version manifest). Install
184+
# Python ourselves: bootstrap uv from PyPI via system python3 (the
185+
# runner already reaches PyPI for claude-agent-sdk), then let uv fetch
186+
# a standalone CPython 3.11 from GitHub and build a SEEDED venv (with
187+
# pip) so later `pip install` / `python -m` steps work unchanged.
188+
run: |
189+
python3 -m pip install --quiet --user uv
190+
export PATH="$(python3 -m site --user-base)/bin:$PATH"
191+
uv venv --python 3.11 --seed "$RUNNER_TEMP/bot-venv"
192+
echo "$RUNNER_TEMP/bot-venv/bin" >> "$GITHUB_PATH"
184193
185194
- name: Setup .NET
186195
if: steps.filter.outputs.skip != 'true'

.github/workflows/engineer-bot.yaml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,18 @@ jobs:
109109
git config user.email "${bot_id}+${bot_login}@users.noreply.github.com"
110110
111111
- name: Setup Python
112-
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
113-
with:
114-
python-version: '3.11'
112+
shell: bash
113+
# actions/setup-python can't provision on this self-hosted runner
114+
# (no hosted tool-cache, can't reach the version manifest). Install
115+
# Python ourselves: bootstrap uv from PyPI via system python3 (the
116+
# runner already reaches PyPI for claude-agent-sdk), then let uv fetch
117+
# a standalone CPython 3.11 from GitHub and build a SEEDED venv (with
118+
# pip) so later `pip install` / `python -m` steps work unchanged.
119+
run: |
120+
python3 -m pip install --quiet --user uv
121+
export PATH="$(python3 -m site --user-base)/bin:$PATH"
122+
uv venv --python 3.11 --seed "$RUNNER_TEMP/bot-venv"
123+
echo "$RUNNER_TEMP/bot-venv/bin" >> "$GITHUB_PATH"
115124
116125
- name: Setup .NET
117126
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1

.github/workflows/reviewer-bot-followup.yml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,18 @@ jobs:
157157

158158
- name: Setup Python
159159
if: steps.filter.outputs.skip != 'true'
160-
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
161-
with:
162-
python-version: '3.11'
160+
shell: bash
161+
# actions/setup-python can't provision on this self-hosted runner
162+
# (no hosted tool-cache, can't reach the version manifest). Install
163+
# Python ourselves: bootstrap uv from PyPI via system python3 (the
164+
# runner already reaches PyPI for claude-agent-sdk), then let uv fetch
165+
# a standalone CPython 3.11 from GitHub and build a SEEDED venv (with
166+
# pip) so later `pip install` / `python -m` steps work unchanged.
167+
run: |
168+
python3 -m pip install --quiet --user uv
169+
export PATH="$(python3 -m site --user-base)/bin:$PATH"
170+
uv venv --python 3.11 --seed "$RUNNER_TEMP/bot-venv"
171+
echo "$RUNNER_TEMP/bot-venv/bin" >> "$GITHUB_PATH"
163172
164173
- name: Install bot engine (interim PAT git-install) + Claude SDK/CLI
165174
if: steps.filter.outputs.skip != 'true'

.github/workflows/reviewer-bot.yml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,18 @@ jobs:
8989
persist-credentials: false
9090

9191
- name: Setup Python
92-
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
93-
with:
94-
python-version: '3.11'
92+
shell: bash
93+
# actions/setup-python can't provision on this self-hosted runner
94+
# (no hosted tool-cache, can't reach the version manifest). Install
95+
# Python ourselves: bootstrap uv from PyPI via system python3 (the
96+
# runner already reaches PyPI for claude-agent-sdk), then let uv fetch
97+
# a standalone CPython 3.11 from GitHub and build a SEEDED venv (with
98+
# pip) so later `pip install` / `python -m` steps work unchanged.
99+
run: |
100+
python3 -m pip install --quiet --user uv
101+
export PATH="$(python3 -m site --user-base)/bin:$PATH"
102+
uv venv --python 3.11 --seed "$RUNNER_TEMP/bot-venv"
103+
echo "$RUNNER_TEMP/bot-venv/bin" >> "$GITHUB_PATH"
95104
96105
- name: Install bot engine (interim PAT git-install) + Claude SDK/CLI
97106
env:

0 commit comments

Comments
 (0)