Skip to content

Migrate to GoReleaser#135

Closed
chebread wants to merge 4 commits intocortesi:masterfrom
chebread:migrate-to-goreleaser
Closed

Migrate to GoReleaser#135
chebread wants to merge 4 commits intocortesi:masterfrom
chebread:migrate-to-goreleaser

Conversation

@chebread
Copy link
Copy Markdown
Contributor

@chebread chebread commented Mar 27, 2026

This PR automates the CD pipeline by introducing GoReleaser and GitHub Actions, replacing the legacy godist script.

Changes

  • Added .github/workflows/release.yml. The release process is now automated and triggered by pushing a version tag (e.g., v0.10.0).
  • The .goreleaser.yaml matches the previous 9 cross-compilation targets from godist, with the crucial addition of darwin_arm64 to support modern Apple Silicon.
  • Artifacts are now built using the modern Go ecosystem standard ({{ProjectName}}_{{Version}}_{{Os}}_{{Arch}}) rather than custom legacy suffixes (e.g., osx64, linuxARM), ensuring better compatibility with automated tools.
  • Added dist/ to .gitignore to prevent tracking build artifacts.
  • Replaced the dead Travis CI badge with the modern GitHub Actions CI badge.
  • Updated the Development section: Removed outdated references to dep and godist, and clarified that the project uses standard Go modules and GoReleaser.

Verification

I have verified that the entire workflow functions flawlessly on my fork repository:

@chebread
Copy link
Copy Markdown
Contributor Author

chebread commented Mar 27, 2026

@wader, I have a question regarding the CHANGELOG.md file. GoReleaser automatically generates detailed release notes on the GitHub Releases page based on the commit history. However, it does not automatically modify and commit to the static CHANGELOG.md file in the current repository.

How should we handle this in future releases? Please let me know your thoughts!

main: ./cmd/devd
binary: devd
env:
- CGO_ENABLED=0
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Do we want -trimpath also? as in understand default config debug and symbols are stripped by default? (-s -w)

Also maybe -tags osusergo,netgo for linux? not sure devd will end up using any libc but if so it might be good to binaries work on non-glibc linux (like alpine). Fully static at least for linux would be nice, there is some discussion in golang/go#26492 what is needed

@wader
Copy link
Copy Markdown
Collaborator

wader commented Mar 29, 2026

@wader, I have a question regarding the CHANGELOG.md file. GoReleaser automatically generates detailed release notes on the GitHub Releases page based on the commit history. However, it does not automatically modify and commit to the static CHANGELOG.md file in the current repository.

How should we handle this in future releases? Please let me know your thoughts!

I think how the CHANGELOG.md looks atm is quite nice. List of short summaries of the user visible and important changes. I usually even like examples if possible. So in that case prepare CHANGELOG.md before release/during development and then later copy/paste same text into the gitbhub unpublished release created by goreleaser.

@wader
Copy link
Copy Markdown
Collaborator

wader commented Mar 29, 2026

I think this looks good. Merge even thought we need help to get a token?

@chebread
Copy link
Copy Markdown
Contributor Author

chebread commented Apr 1, 2026

In my opinion, there seems to be a better alternative. I have decided that it would be best to close this #135 PR. I will look for an alternative and post a new PR later!

@chebread chebread closed this Apr 1, 2026
@wader
Copy link
Copy Markdown
Collaborator

wader commented Apr 1, 2026

@chebread Ok 👍 i'm not very up to date what alternatives there are, only used goreleaser

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.

2 participants