Skip to content

ci: migrate goreleaser to v2 and add tag-triggered release workflow - #898

Merged
joohoi merged 2 commits into
masterfrom
ci/release-workflow
Jul 11, 2026
Merged

joohoi merged 2 commits into
masterfrom
ci/release-workflow

Conversation

@joohoi

@joohoi joohoi commented Jul 11, 2026

Copy link
Copy Markdown
Member

Migrates .goreleaser.yml to the v2 schema (fixes the only version: 2 configuration files are supported error from goreleaser 2.x) and adds .github/workflows/release.yml so signed cross-platform archives are built in CI on a v* tag push, instead of locally.

Config changes

  • Add version: 2.
  • Replace the removed archive replacements with a name_template that keeps the darwin->macOS naming (e.g. ffuf_2.2.0_macOS_arm64.tar.gz, ffuf_2.2.0_linux_armv6.tar.gz).
  • Drop the GOPATH-templated asmflags/gcflags; -trimpath already trims build paths and GOPATH isn't set in CI.
  • Switch checksum signing to a batch GPG invocation driven by GPG_FINGERPRINT, matching the CI import-gpg step.
  • Ignore windows/arm, which modern Go no longer supports (drops the windows_armv6 archive; all other targets unchanged).

Workflow

.github/workflows/release.yml (modeled on acme-dns): on a v* tag push, import the GPG key and run goreleaser release --clean. Requires repo secrets GPG_PRIVATE_KEY and GPG_PASSPHRASE.

Validated locally: goreleaser check passes and a full snapshot build produces all 16 archives with correct names.

joohoi added 2 commits July 11, 2026 15:21
goreleaser 2.x requires `version: 2`; the previous config was the legacy (v0)
schema and failed with 'only version: 2 configuration files are supported'.

Config migration:
- add `version: 2`
- replace the removed archive `replacements` with a name_template that keeps
  the darwin->macOS naming (ffuf_x.y.z_macOS_arm64.tar.gz, etc.)
- drop the GOPATH-templated asmflags/gcflags; -trimpath already trims build
  paths and GOPATH isn't set in CI
- switch checksum signing to a batch GPG invocation driven by GPG_FINGERPRINT,
  matching the CI import-gpg step
- ignore windows/arm, which modern Go no longer supports (drops the
  windows_armv6 archive; all other targets unchanged)

Add .github/workflows/release.yml (modeled on acme-dns): on a v* tag push,
import the GPG key and run 'goreleaser release --clean' so signed cross-platform
archives are built in CI. Requires repo secrets GPG_PRIVATE_KEY and GPG_PASSPHRASE.
@joohoi
joohoi merged commit fb6c4ef into master Jul 11, 2026
3 checks passed
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.

1 participant