From 1803a09306d22fb089517bde3377ad7bcba6500a Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Tue, 26 May 2026 16:54:05 -0400 Subject: [PATCH] =?UTF-8?q?ci(workflow):=20remove=20the=204=20Cache=20pip?= =?UTF-8?q?=20wheels=20steps=20entirely=20=E2=80=94=20act=5Frunner's=20cac?= =?UTF-8?q?he=20backend=20has=20been=20broken=20for=2011+=20days=20and=20t?= =?UTF-8?q?he=20cached=20path=20(~/.cache/pip)=20wasn't=20even=20the=20pri?= =?UTF-8?q?mary=20install=20tool's=20cache=20anyway=20(uv=20uses=20~/.cach?= =?UTF-8?q?e/uv).=20Net=20cost=20~30s/job=20of=20wheel=20downloads.=20Long?= =?UTF-8?q?-term:=20mount=20~/.cache/uv=20as=20a=20docker=20volume=20at=20?= =?UTF-8?q?the=20runner=20level=20(skips=20actions/cache=20entirely)=20or?= =?UTF-8?q?=20fix=20the=20runner-side=20cache=20backend.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 (1M context) --- .forgejo/workflows/ci.yml | 75 ++++++--------------------------------- 1 file changed, 11 insertions(+), 64 deletions(-) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index 904662e..46db216 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -24,22 +24,17 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Cache pip wheels - # continue-on-error: act_runner's cache backend has been broken on - # this homelab setup since 2026-05-15 — bolt.db + cache/ dir exist - # but the action's JS bundle now fails to load at all - # ("Cannot find module .../dist/restore/index.js"), hard-failing - # the whole job. The install step that follows handles cold caches - # natively (uv pip / pip install both work without it), so net - # cost of disabling the cache here is ~30s of wheel downloads per - # job. Re-enable once the runner-side cache backend is fixed. - continue-on-error: true - uses: actions/cache@v4 - with: - path: ~/.cache/pip - key: pip-${{ runner.os }}-py314-${{ hashFiles('requirements.txt') }} - restore-keys: | - pip-${{ runner.os }}-py314- + # Cache step removed 2026-05-26: act_runner's cache backend has been + # broken on this homelab runner since 2026-05-15 (first as request- + # timeout warnings, then as hard "Cannot find module .../dist/restore/ + # index.js" failures that tank the whole job). The cache step targeted + # ~/.cache/pip but the install below uses `uv pip install` primarily, + # whose own cache lives at ~/.cache/uv — so the cache step's real + # benefit was marginal even when working. Cost of removal: ~30s of + # wheel downloads per job. Future re-enable: mount ~/.cache/uv as a + # docker volume at the runner level (skips actions/cache entirely), + # or fix the runner-side cache backend (clear /var/run/act/actions/*, + # pin act_runner version, etc.). - name: Install Python deps # ruff is pre-installed in the ci-python image (see CI-Runner/CI-python/ @@ -133,22 +128,6 @@ jobs: --health-retries 10 steps: - uses: actions/checkout@v4 - - name: Cache pip wheels - # continue-on-error: act_runner's cache backend has been broken on - # this homelab setup since 2026-05-15 — bolt.db + cache/ dir exist - # but the action's JS bundle now fails to load at all - # ("Cannot find module .../dist/restore/index.js"), hard-failing - # the whole job. The install step that follows handles cold caches - # natively (uv pip / pip install both work without it), so net - # cost of disabling the cache here is ~30s of wheel downloads per - # job. Re-enable once the runner-side cache backend is fixed. - continue-on-error: true - uses: actions/cache@v4 - with: - path: ~/.cache/pip - key: pip-${{ runner.os }}-py314-${{ hashFiles('requirements.txt') }} - restore-keys: | - pip-${{ runner.os }}-py314- - name: API integration shard (resolve service IPs, migrate, test) run: | set -eux @@ -207,22 +186,6 @@ jobs: --health-retries 10 steps: - uses: actions/checkout@v4 - - name: Cache pip wheels - # continue-on-error: act_runner's cache backend has been broken on - # this homelab setup since 2026-05-15 — bolt.db + cache/ dir exist - # but the action's JS bundle now fails to load at all - # ("Cannot find module .../dist/restore/index.js"), hard-failing - # the whole job. The install step that follows handles cold caches - # natively (uv pip / pip install both work without it), so net - # cost of disabling the cache here is ~30s of wheel downloads per - # job. Re-enable once the runner-side cache backend is fixed. - continue-on-error: true - uses: actions/cache@v4 - with: - path: ~/.cache/pip - key: pip-${{ runner.os }}-py314-${{ hashFiles('requirements.txt') }} - restore-keys: | - pip-${{ runner.os }}-py314- - name: Importer integration shard (resolve service IPs, migrate, test) run: | set -eux @@ -281,22 +244,6 @@ jobs: --health-retries 10 steps: - uses: actions/checkout@v4 - - name: Cache pip wheels - # continue-on-error: act_runner's cache backend has been broken on - # this homelab setup since 2026-05-15 — bolt.db + cache/ dir exist - # but the action's JS bundle now fails to load at all - # ("Cannot find module .../dist/restore/index.js"), hard-failing - # the whole job. The install step that follows handles cold caches - # natively (uv pip / pip install both work without it), so net - # cost of disabling the cache here is ~30s of wheel downloads per - # job. Re-enable once the runner-side cache backend is fixed. - continue-on-error: true - uses: actions/cache@v4 - with: - path: ~/.cache/pip - key: pip-${{ runner.os }}-py314-${{ hashFiles('requirements.txt') }} - restore-keys: | - pip-${{ runner.os }}-py314- - name: Core integration shard (everything not api / importer / migration / phash / sidecar / scan / archive / backfill) run: | set -eux