Skip to content

From GoReleaser to semrel

This guide is for teams moving from .goreleaser.yaml driven releases to semrel.

GoReleaser areasemrel approach
Version/changelog from commitsanalyzer + generator plugins
Build matrix and archivesCI build jobs (go build, archive tooling)
nfpm packages@semrel/nfpm
Registry/endpoint publish@semrel/oci / @semrel/generic-http
  1. Keep your build matrix in CI and output all artifacts into dist/.
  2. Add semrel for versioning/changelog and run in dry-run.
  3. Replace GoReleaser packaging with @semrel/nfpm where required.
  4. Replace GoReleaser publish targets one by one with semrel publishers.
  5. Remove GoReleaser release orchestration once parity is reached.
plugins:
- uses: @semrel/github
- uses: @semrel/conventional
- uses: @semrel/changelog-md
args:
file: CHANGELOG.md
- uses: @semrel/nfpm
args:
config: packaging/nfpm.yaml
target: dist/packages
packagers: deb,rpm,apk
- uses: @semrel/oci
args:
ref: ghcr.io/your-org/myapp:{version}
artifacts: dist/myapp-linux-amd64,dist/myapp-linux-arm64
  • Artifact paths in publisher plugins must match your CI outputs exactly.
  • Keep checksums/signing in CI or introduce a dedicated step before publishing.
  • Validate 1:1 release artifact parity for one full release candidate.
Back to Migration Hub