ci(actions): vendor runs-on/cache to stop per-job codeload re-download - #1126
ci(actions): vendor runs-on/cache to stop per-job codeload re-download#1126Rasbandit wants to merge 1 commit into
Conversation
Ephemeral self-hosted runners re-download every action from codeload.github.com each job. runs-on/cache (a fork of actions/cache with the AWS S3 SDK bundled, ~18MB dist) intermittently timed out downloading (100s x3), making the "Set up job" phase take ~60s or fail outright — hitting prebuild-mix, unit-tests, lint, migration-gates, e2e-browser. Vendor it locally at v5.0.7 (SHA 88d9064) as ./.github/actions/runs-on-cache and .../restore. A local (./) action is served straight from the checkout, no fetch. All 13 verify.yml refs repointed; verified every using-job runs actions/checkout first. Minimal vendor: only the entry points the workflow uses (cache main + restore); dropped the unused save/ sub-action and dist/save-only. Behavior is identical (same inputs, same MinIO/S3 backend env). ~13MB. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VK9qUcRtS3tiW9wNhw83y7
|
Closing after measuring the problem this solves. The cost is ~0.6s of critical-path time per CI run — not worth 362,900 committed lines. MeasurementParsed the runner logs of a real full run (30228376076), timing every
Per job: migration gates 0.61s, lint 0.48s, unit-tests 0.35s, prebuild-mix 0.30s, e2e-browser 0.19s. The ~18 Why that changes the verdictVendoring buys back 0.6s per run and costs:
That trade is upside-down. If the download ever does become a real costFix it at the runner layer, not in the repo — cache or mirror the action tarball on the self-hosted runner VMs ( Branch |
Parked from a worktree cleanup — no PR, local-only branch. Draft so it's recoverable; decide later.
Vendors the
runs-on/cacheaction into.github/actions/runs-on-cacheso CI jobs stop re-downloading it from codeload, plus theverify.ymlwiring.Audit notes:
main.dist/JavaScript. That's the main reason it was worth preserving rather than deleting — it's tedious to reconstruct — but also the main reason to think before merging.🤖 Parked by Claude Code