ci: migrate release process from GitHub Actions to Buildkite with Chinmina#136
Merged
jamestelfer merged 8 commits intomainfrom Apr 10, 2026
Merged
Conversation
6e28768 to
0061686
Compare
In preparation for a full migration of the release process to Buildkite.
393d86b to
8f943af
Compare
Replace the hybrid Buildkite/GitHub Actions release workflow with a Buildkite-only pipeline using Chinmina for ephemeral GitHub authentication. The release process is entirely in Buildkite, and no longer requires GitHub personal access tokens.
531360b to
2b2db5b
Compare
Add release section to goreleaser config to ensure changelog is properly published to GitHub releases with appropriate header and footer formatting.
- Change snapshot.name_template to snapshot.version_template - Change archives.format to archives.formats - Rename brews to homebrew_casks (removes custom test and install scripts as casks use a different structure) These changes address all deprecation warnings from GoReleaser v2.
2b2db5b to
06d314b
Compare
anshbajpai01
reviewed
Apr 9, 2026
anshbajpai01
reviewed
Apr 9, 2026
Member
Author
|
Before this merges I'll do a once-over to make sure there isn't anything left over here. |
ci_calculate_version, ci_create_tag, and ci_goreleaser were left over from an earlier multi-step pipeline design. ci_release now inlines all three functions, making these scripts dead code.
Address review feedback: use [[ ]] over [ ], split local declarations from command-substitution assignments onto separate lines, quote all command substitutions and variable expansions consistently.
Member
Author
Required follow-up: homebrew-tap formula deprecationThe Required change in
|
- Add inline comments to pipeline.yaml explaining Chinmina plugin options: exclusive:true behaviour, pipeline: vs org: scope prefixes, and why both plugins reference the same binary-release profile - Pin git-cliff docker image to v2.12.0 (was :latest) - Update AGENTS.md release process steps to reflect Chinmina replacing OIDC/AWS Secrets Manager
4aba2bf to
7f4e069
Compare
anshbajpai01
approved these changes
Apr 10, 2026
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.
Purpose
Simplify and consolidate the cfparams release process by removing the dependency on GitHub Actions and AWS Secrets Manager. The current hybrid approach requires Buildkite to trigger GitHub Actions, which then performs the actual release work. This is complicated and relies on long-lived credentials stored in AWS Secrets Manager.
Going for a Buildkite-only pipeline with Chinmina for ephemeral GitHub authentication makes the release process more straightforward.
Notably:
git-cliffworks better for pre-release versions than our previous strategy, and gets rid of a Node dependency.Context
pipeline:binary-releasefor releases/tags andorg:homebrew-tap-publishfor homebrew tap updatesRequired follow-up before release
The
.goreleaser.yamlchange frombrews:tohomebrew_casks:is correct for GoReleaser v2 — pre-compiled binaries should be Casks, not Formulas. However, existing users ofbrew install cultureamp/tap/cfparamswill hit a silent failure once the Formula is replaced by a Cask in the tap.cultureamp/homebrew-tapchangesReplace
Formula/cfparams.rbwith a disabled stub:This makes
brew install cultureamp/tap/cfparamsfail with a clear message pointing to the cask, rather than silently doing nothing.Also ensure the tap has a
Casks/directory — GoReleaser writes the cask file there by default (sincedirectory: Formulawas removed from.goreleaser.yaml).After the first release
Update the README install command from
brew install cultureamp/tap/cfparamstobrew install --cask cultureamp/tap/cfparamsonce the install path is confirmed.