feat(release): add Chocolatey package publishing support#8222
feat(release): add Chocolatey package publishing support#8222jwmossmoz wants to merge 4 commits into
Conversation
Add GoReleaser configuration to build and publish Windows binaries to Chocolatey package manager. This includes: - taskcluster CLI - generic-worker (multiuser variant) - start-worker - livelog - taskcluster-proxy The Chocolatey packages mirror the existing Homebrew integration pattern and will be published during the release process when CHOCOLATEY_API_KEY is configured in the Taskcluster secrets.
ca30685 to
aa7c785
Compare
804baea to
d102b01
Compare
- Add Windows builds to GoReleaser for worker binaries (generic-worker, start-worker, livelog, taskcluster-proxy) - Update client-shell.js to only build CLI via goreleaser build --id - Add goreleaser build steps to each worker JS file for Windows .exe - Add Homebrew/Chocolatey publishing step in release.js - Add chocolateys section to .goreleaser.yaml Packages published to Chocolatey: - taskcluster (CLI) - generic-worker (multiuser) - start-worker - livelog - taskcluster-proxy Requires CHOCOLATEY_API_KEY in the release secret. Fixes taskcluster#8221. Fixes taskcluster#5598.
d102b01 to
63c72ac
Compare
taskcluster-bot
left a comment
There was a problem hiding this comment.
Review (automated)
This PR adds Chocolatey package publishing support to the release process via GoReleaser, packaging taskcluster CLI, generic-worker, start-worker, livelog, and taskcluster-proxy for Windows.
Feedback
-
GoReleaser builds duplicate client-shell — The existing `client-shell.js` build task builds the shell client for all platforms. This PR adds a GoReleaser build that also builds the `taskcluster` binary. The `client-shell.js` is skipped during `releasePublish`, but during a normal build both would run. Is this the intended flow?
-
GoReleaser runs twice — The release process now runs `goreleaser release` twice: once in "Build GoReleaser artifacts" (with `--skip=publish`) and again in "Publish to Homebrew and Chocolatey" (without `--skip=publish`). This means all binaries are built twice. Consider using `goreleaser continue` or saving the GoReleaser dist directory between steps.
-
Windows-only for worker tools — The new GoReleaser builds for generic-worker-multiuser, start-worker, livelog, and taskcluster-proxy only target Windows. This makes sense for Chocolatey, but the archives are also uploaded to the GitHub release. Will this conflict with the existing release artifacts that cover all platforms?
-
CHOCOLATEY_API_KEY — Added to `expectedVars` which means it's required for all publishes, not just when Chocolatey publishing is enabled. This could break non-Chocolatey publish workflows.
-
Missing changelog — There's no changelog entry for this feature addition.
-
GoReleaser as go tool — Using `go tool goreleaser` assumes goreleaser is installed as a Go tool. Is this dependency documented? Does the CI environment have it available?
Good initiative to make Taskcluster tools easily installable on Windows via Chocolatey. The main concerns are around the double-build and potential conflicts with existing release artifacts.
Fixes #8221.
Fixes #5598.
Adds GoReleaser Windows builds/archives for worker binaries (generic-worker multiuser, start-worker, livelog, taskcluster-proxy) and Chocolatey metadata. GoReleaser runs during release:publish to build and upload worker zips + CLI archives before publishing to Homebrew/Chocolatey; requires CHOCOLATEY_API_KEY in the release secret.