fix(ci): disable broken pnpm cache on actions/setup-node #8

Merged
julien merged 1 commits from fix/ci/disable-broken-cache into main 2026-05-04 15:33:04 +02:00
Owner

Summary

act_runner's built-in GitHub-Actions-cache server binds inside the runner container on the compose-defined apf-portal-act-runners bridge. Jobs spawned via the mounted Docker socket land on Docker's default bridge network and can't reach it. Every job opting into cache: 'pnpm' ate ~2 min ETIMEDOUT on restore + another ~2 min on save — across the 5 jobs, ~20 min wasted per CI run for zero cache hits.

Drop cache: 'pnpm' everywhere. pnpm install --frozen-lockfile is fast on the warm store inside the job container, so removing the cache layer is a net gain today.

The proper fix (cross-container networking / fixed-port cache binding) is documented in infra/README.md → "Cache server (deferred)" so it can be picked up as an isolated infra spike later.

Test plan

  • CI run on this PR: every job's Set up Node.js step finishes in seconds (no ETIMEDOUT warning).
  • Complete job step also finishes promptly (no reserveCache failed warning).
  • Total wall-clock time for the run should drop by ~15-20 min vs. previous runs.
## Summary `act_runner`'s built-in GitHub-Actions-cache server binds inside the runner container on the compose-defined `apf-portal-act-runners` bridge. Jobs spawned via the mounted Docker socket land on Docker's default `bridge` network and can't reach it. Every job opting into `cache: 'pnpm'` ate ~2 min `ETIMEDOUT` on restore + another ~2 min on save — across the 5 jobs, ~20 min wasted per CI run for zero cache hits. Drop `cache: 'pnpm'` everywhere. `pnpm install --frozen-lockfile` is fast on the warm store inside the job container, so removing the cache layer is a net gain today. The proper fix (cross-container networking / fixed-port cache binding) is documented in `infra/README.md` → "Cache server (deferred)" so it can be picked up as an isolated infra spike later. ## Test plan - [ ] CI run on this PR: every job's `Set up Node.js` step finishes in seconds (no ETIMEDOUT warning). - [ ] `Complete job` step also finishes promptly (no `reserveCache failed` warning). - [ ] Total wall-clock time for the run should drop by ~15-20 min vs. previous runs.
julien added 1 commit 2026-05-04 15:12:50 +02:00
fix(ci): disable broken pnpm cache on actions/setup-node
CI / scan (pull_request) Failing after 1m27s
CI / commits (pull_request) Successful in 1m28s
CI / check (pull_request) Successful in 1m34s
CI / a11y (pull_request) Successful in 1m3s
CI / perf (pull_request) Successful in 1m52s
9a57f21c6d
`act_runner`'s built-in GitHub-Actions-cache server binds inside the
runner container on the compose-defined `apf-portal-act-runners`
bridge. Jobs spawned via the mounted Docker socket come up on
Docker's default `bridge` network and cannot reach it. Every job
opting into `cache: 'pnpm'` therefore eats ~2 min ETIMEDOUT on
restore at the start and another ~2 min on save at the end — for
zero cache hits. Across the five jobs that's ~20 min wasted per CI
run.

Drop `cache: 'pnpm'` from all five jobs. `pnpm install
--frozen-lockfile` is fast enough on the warm store inside the job
container that the cache layer is currently no value-add anyway.

Document the proper fix (cross-container networking / fixed-port
cache binding) in infra/README.md so a future infra spike can
re-enable caching cleanly.
julien merged commit f2440fbf24 into main 2026-05-04 15:33:04 +02:00
julien deleted branch fix/ci/disable-broken-cache 2026-05-04 15:33:09 +02:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: julien/apf_portal#8