Thanks to visit codestin.com
Credit goes to github.com

Skip to content

ci(goreleaser): migrate to dockers_v2 + homebrew_casks#372

Merged
clangenb merged 1 commit into
mainfrom
ci/goreleaser-dockers-v2-homebrew-casks
Jun 5, 2026
Merged

ci(goreleaser): migrate to dockers_v2 + homebrew_casks#372
clangenb merged 1 commit into
mainfrom
ci/goreleaser-dockers-v2-homebrew-casks

Conversation

@eldara-cruncher
Copy link
Copy Markdown
Collaborator

What

Mirrors Eldara-Tech/swarmcli-be#157 on the OSS repo so its releases stop emitting the GoReleaser deprecation notices (dockers/docker_manifestsdockers_v2, brewshomebrew_casks; removed in GoReleaser v3).

Changes

  • dockers_v2: one multi-arch (linux/amd64,arm64) entry replaces the two per-arch dockers blocks + docker_manifests. Dockerfile.release now uses ARG TARGETPLATFORM + COPY ${TARGETPLATFORM}/swarmcli.
  • :latest guarded to stable releases only ({{ if not .Prerelease }}) — an -rc tag no longer moves :latest.
  • homebrew_casks replaces brews, with a macOS-guarded postflight quarantine strip (GoReleaser binaries are not Apple-notarized). conflicts_with is the symmetric cask: swarmcli-be. The formula-only license: Apache-2.0 field is dropped — Homebrew casks have no license stanza (the in-repo LICENSE is unaffected).
  • Pin goreleaser-action to ~> v2.12.

Behavioral changes (C1)

  • Homebrew is now a cask and macOS-only; Linux users use the binary/docker/scoop.
  • :latest is no longer pushed from prerelease tags.

Verification

  • goreleaser check — clean, zero deprecations.
  • goreleaser release --snapshot --clean --skip=publish,docker — binaries build; cask renders with correct binary "swarmcli", conflicts_with cask: ["swarmcli-be"], and the quarantine postflight.
  • Multi-arch image build (the ${TARGETPLATFORM} COPY) is validated by the next -rc release run.

Required follow-up

tap_migrations.json + stale Formula/*.rb removal in Eldara-Tech/homebrew-tap so existing brew install users transition to the cask (covers both swarmcli and swarmcli-be).

🤖 Generated with Claude Code

GoReleaser deprecated `dockers`/`docker_manifests` (-> dockers_v2) and
`brews` (-> homebrew_casks); these keys are removed in GoReleaser v3.
Mirrors the swarmcli-be change so OSS releases stop warning too.

- dockers_v2: one multi-arch (linux/amd64,arm64) entry replaces the two
  per-arch `dockers` blocks + `docker_manifests`. Dockerfile.release now
  consumes ${TARGETPLATFORM} (single multi-platform buildx build).
- :latest is now guarded to stable releases only ({{ if not .Prerelease }}).
- homebrew_casks replaces the deprecated `brews` formula, with a
  macOS-guarded postflight that strips the Gatekeeper quarantine xattr
  (GoReleaser binaries are not Apple-notarized). The formula-only
  `license: Apache-2.0` field is dropped — Homebrew casks have no license
  stanza. conflicts_with is the symmetric `cask: swarmcli-be`.
- Pin goreleaser-action to '~> v2.12' (dockers_v2 floor; casks need v2.10).

Validated with `goreleaser check` (no deprecations) and a snapshot build.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@eldara-cruncher eldara-cruncher force-pushed the ci/goreleaser-dockers-v2-homebrew-casks branch from c4f5588 to a49343e Compare June 5, 2026 08:21
@clangenb clangenb merged commit bca96de into main Jun 5, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants