Repository navigation
ci: rebuild only what changed, and release on merge - #4
Merged
Merged
Conversation
Every PR and master push rebuilt all 22 versions on Linux and macOS, and the v* tag rebuilt them all again before publishing: three full builds per release, about an hour of macOS runners each. Each (version, platform) build is now cached under the hash of everything that decides its binaries (the version's binaries/ dir, build_defs, plugins, .plzconfig, pleasew, the smoke test and this workflow). A hit restores the tarballs and re-runs only the smoke test; a miss builds, smoke-tests, and only then saves. GitHub scopes caches by branch, so a PR can never put a binary into master's cache. Releasing no longer needs a hand-pushed tag: a push to master whose RELEASE_VERSION has no release yet publishes the tarballs that run built, tagged at the merge commit itself. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Why
Every PR and master push rebuilt all 22 versions on Linux and macOS, and the
v*tag then rebuilt them all again before publishing. That's three full builds per release, each taking about an hour of macOS runners.What
(version, platform)build is cached under the hash of everything that decides its binaries: that version'sbinaries/<v>/,build_defs/,plugins/,.plzconfig,pleasew, the smoke test and this workflow.RELEASE_VERSIONhas no release yet publishes the tarballs that run built, tagged at the merge commit itself. There's no hand-pushed tag and no tag rebuild, and the release is exactly what was built from the merged source.Test plan
RELEASE_VERSIONis v0.0.6, which is already released, so no release is published.🤖 Generated with Claude Code