chore(ci): build only changed services, amd64-only, on PRs - #69
Closed
dylanjeffers wants to merge 1 commit into
Closed
chore(ci): build only changed services, amd64-only, on PRs#69dylanjeffers wants to merge 1 commit into
dylanjeffers wants to merge 1 commit into
Conversation
pr.yml rebuilt all 13 services for both amd64 and arm64 plus 13 multi-arch manifest jobs on every PR, regardless of what changed. Now it: - detects changed services via paths-filter (mirroring edge.yml on main), so a PR touching one service builds only that service; - builds amd64 only (compile check) — arm64 + multi-arch manifests are still produced by edge.yml on merge to main; - cancels superseded in-flight builds via concurrency. build-services.yml gains a build_arm64 input (default true) to support the amd64-only PR path; edge.yml/latest.yml behavior is unchanged. test.yml gains cancel-in-progress concurrency. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
Author
|
Closing — main was restructured while this was in flight. The new deploy.yml already addresses the core waste: change-detection on services and main-only builds. Our pr.yml and build-services.yml changes conflict with the deleted files. |
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.
Goal
Cut GitHub Actions spend. PR builds were the main cost driver in this repo.
Changes
pr.ymlpreviously rebuilt all 13 services for both amd64 and arm64, plus 13 multi-arch manifest jobs, on every PR — regardless of what changed. Now it:dorny/paths-filter(mirrors the change-detectionedge.ymlalready uses on main) — a PR touching one service builds only that service;edge.ymlon merge to main, which is what releases consume;build-services.ymlgains abuild_arm64input (defaulttrue) to support the amd64-only PR path.edge.ymlandlatest.ymlare unchanged (still full multi-arch).test.ymlgainscancel-in-progressconcurrency.Estimated savings
Typical PR goes from 26 builds + 13 manifest jobs → 1 amd64 build. Combined with the change-detection, this removes the large majority of PR build minutes (incl. all PR arm64 runners). Rough estimate ~$8–12/mo of the ~$19/mo.
Note
Relay app removal already landed (
89b0fbf); the repo still ships ~12 active services, so CI is trimmed rather than gutted. Per-app path filtering matchesedge.yml's existing behavior (a change to a sharedpackages/*lib won't rebuild dependent services on PR — same limitation as main today; flag if you want shared-lib changes to fan out).🤖 Generated with Claude Code