Skip to content

feat(release): add Chocolatey package publishing support#8222

Draft
jwmossmoz wants to merge 4 commits into
taskcluster:mainfrom
jwmossmoz:chocolatey-support
Draft

feat(release): add Chocolatey package publishing support#8222
jwmossmoz wants to merge 4 commits into
taskcluster:mainfrom
jwmossmoz:chocolatey-support

Conversation

@jwmossmoz
Copy link
Copy Markdown

@jwmossmoz jwmossmoz commented Jan 22, 2026

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.

@jwmossmoz jwmossmoz requested a review from a team as a code owner January 22, 2026 16:13
@jwmossmoz jwmossmoz requested review from lotas, matt-boris and petemoore and removed request for a team January 22, 2026 16:13
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.
@jwmossmoz jwmossmoz marked this pull request as draft January 22, 2026 16:25
@jwmossmoz jwmossmoz force-pushed the chocolatey-support branch 3 times, most recently from 804baea to d102b01 Compare January 22, 2026 17:03
- 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.
Copy link
Copy Markdown
Collaborator

@taskcluster-bot taskcluster-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

  1. 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?

  2. 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.

  3. 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?

  4. 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.

  5. Missing changelog — There's no changelog entry for this feature addition.

  6. 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Support for Chocolatey for Windows Binaries Add linux/windows distribution methods

2 participants