Add Homebrew cask configuration#87
Conversation
|
Updated goreleaser (and ko while we're in there) for homebrew cask support. |
|
I think you can manually tag on your branch and it should kick off the pipeline. Might need to adjust the branch protection rules on the other repo though. I know @lucaswilric had played with similar GitHub permissions stuff elsewhere for a different project, although I can't remember which one off hand. |
|
It looks like we might be able to push straight to master in that repo: https://github.com/buildkite/homebrew-buildkite/commits/master There's at least a linear history of commits by "buildkite-agent-releaser" and "goreleaserbot" (goreleaser's default commit identity). Neither seem to correspond to actual GitHub users. We do homebrew releases for test-engine-client: https://github.com/buildkite/test-engine-client/blob/main/.goreleaser.yaml#L28-L40 That's using a GitHub token stored in SSM: https://github.com/buildkite/test-engine-client/blob/main/.buildkite/pipeline.release.yml#L19 Will need to dig to figure out the principal. |
|
Oh I'm just failing at using GitHub's UI. https://github.com/buildkite-agent-releaser exists. So does https://github.com/goreleaserbot. The former is probably committer and pusher. The latter must be a committer, not sure of the pusher. |
|
We already have a GitHub token via aws assume identity and ssm, similar to test engine client: |
|
Confirmed, this release pipeline has a fine grained GitHub token with access to the homebrew tap. So I think this can be merged, and the next release will tell us if it's configured correctly - I think so! |


I'd like to
brew install buildkite/buildkite/buildkite-mcp-server. Goreleaser supports homebrew casks, and we have a homebrew tap, so let's switch it on!On this branch, I ran:
$ goreleaser release --snapshotThis generates casks like:
I copy pasted this into my local clone of the tap, adjusted it to the latest official v0.5.5 artifacts, and it works a treat:
I'll go update our tap to support formulae and casks, and add an initial cask based on the already released version.
I suspect we'll need to give our release pipeline permission to cut a new cask. I presume it already has some form of GitHub credential. We might need to adjust this to open a PR, I don't think it'll be able to push straight to main.
How do you test this release process nicely? Can we do a snapshot release or something?