Repository navigation
ci: skip remote npm cache and success-path uploads on Mac minis - #135
Merged
Merged
Conversation
Self-hosted Mac minis already keep ~/.npm on disk. setup-node cache: npm was saving 1.1–1.3 GB archives to GitHub at ~1 MB/s (Post setup-node tails up to 27 minutes). Quality/browser artifacts now upload only on failure; docs PRs still build and typecheck but skip the unused Pages artifact. Co-authored-by: Joe Blau <[email protected]>
joeblau
marked this pull request as ready for review
October 21, 2026 00:24
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Behavior and issues
Make candidate quality and docs CI faster on the self-hosted Mac mini runners (
[self-hosted, macOS, ARM64]). Verified against GitHub Actions runs and the cache store from 17–20 Oct 2026;publish.ymlis untouched.Every job stays on the minis. Playwright remains Chromium and WebKit only.
Changes and expected time savings
Verified this repo’s cache store and step timings (not only the Oct 17–20 note):
refs/pull/*/merge,hig/*). Font caches are ~4 MB each and stay.Post Run actions/setup-node1655 s (27.6 min) onnative(run 39287592105) while saving ~1.1 GB at ~1 MB/s.upload-artifact36 s typical, max 362 s (same run); browser upload 24 s typical, max 183 s. Both currentlyif: always().main.cache: npmfrom the threesetup-nodeblocks inquality.ymland the one indocs.yml~/.npm. Pinned setup-node v4 has nopackage-manager-cacheinput (that is v5+); comments warn not to re-addcache: npmor to setpackage-manager-cache: falseif the pin moves to v5. Fontactions/cache(~4 MB) is unchanged.Post setup-node). Stops growing the 10 GB npm cache store.npm cishould stay in the 35–50 s range from the on-disk cache.upload-artifactif: always()→if: failure()publish.ymlonly requires a successful quality run for the commit, then rebuilds.release:dry-runandsmoke:release-artifactstill run in the quality job.qualityjobs; ~24 s p50 / up to 183 s off greenbrowserjobs. Failed runs still upload captures and tarballs.docs.ymldocs:buildandcheck -w hig-docsstill run on every PR. Upload + gtar only whengithub.ref == 'refs/heads/main' && github.event_name != 'pull_request'(same condition as deploy).publish.ymlis not modified (separate release PR).Observed on this PR (green on the minis)
Runs quality 39507834646 and docs 39507834659 on
mini-m4-02,mini-m6-01, andmini-m6-02(self-hosted, macOS, ARM64).setup-noderestorePost setup-node(npm cache save)upload-artifactupload-artifactnpm ci~/.npm)buildjobWall-clock quality was ~99 min because jobs queued ~80 min for a mini; once scheduled, the jobs themselves were faster and produced no GitHub artifacts.
Validation
quality.yml/docs.ymljobs remain[self-hosted, macOS, ARM64].chromium webkit.Platform limitations and migration/rollback
npm cifrom registry if a mini’s~/.npmis cold; later runs use the on-disk cache.node-cache-*entries age out; they are no longer written.out/from a green run will need a failed rerun or a local dry-run; release publication still rebuilds.