feat(release): add pre-release support#639
Merged
Merged
Conversation
Add two-phase release workflow: bump-prepare generates changelog for review, bump-finalize commits/tags/pushes. Add rc and beta one-shot bump types with auto-incrementing suffixes.
Use GoReleaser .Prerelease template to conditionally skip Homebrew formula updates and :latest ko image tags when releasing rc/beta tags.
Add detect job that checks for semver pre-release suffix in tags. Gate deploy, site docs, and :latest validator manifests on stable releases only. Slack notifications fire for both with release type indicator. Full build/test/attest pipeline runs for all tags.
Contributor
Coverage Report ✅
Coverage BadgeNo Go source files changed in this PR. |
This comment was marked as resolved.
This comment was marked as resolved.
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.
Summary
Add pre-release support (RC/beta) to the release process with two-phase bump workflow and gated consumer-facing artifacts.
Motivation / Context
Pre-release tags (e.g.,
v1.2.4-rc1) currently update Homebrew, push:latestcontainer tags, deploy to Cloud Run, and publish site docs — leaking untested artifacts to end users. Additionally, there is no way to review release notes before a tag is pushed.Fixes: #638
Related: N/A
Type of Change
Component(s) Affected
cmd/aicr,pkg/cli)cmd/aicrd,pkg/api,pkg/server)pkg/recipe)pkg/bundler,pkg/component/*)pkg/collector,pkg/snapshotter)pkg/validator)pkg/errors,pkg/k8s)docs/,examples/)Implementation Notes
tools/bump rewrite:
prepare,finalize,abortfor two-phase releasesrcandbetawith auto-incrementing suffixes (v1.2.4-rc1→v1.2.4-rc2)major/minor/patchbehavior preserved.release-pendingstate file tracks version between prepare/finalize (gitignored)Pre-release detection (on-tag.yaml):
detectjob checks tag for semver pre-release suffix (hyphen)is_prerelease == 'false': Homebrew push,:latestimage tags (ko + validator manifests), Cloud Run deploy, site docspublishdepends onrelease-check(notdeploy),deployruns afterpublishGoReleaser (.goreleaser.yaml):
skip_uploaduses.Prereleasetemplate to skip Homebrew for pre-releasestagsconditionally excludelatestfor pre-releases/releases/latestexcludes pre-releases):latestTesting
Pre-existing test failures confirmed on clean main (not introduced by this PR).
Risk Assessment
Rollout notes: Fully backwards compatible. Existing
make bump-patch/minor/majortargets work identically. New targets (bump-prepare,bump-finalize,bump-rc,bump-beta) are additive. Pre-release gating only activates for tags containing a hyphen.Checklist
make testwith-race)make lint)git commit -S) — GPG signing info