Since v1.12.0-pro, GoReleaser can split and merge its release process. This means that you can run the builds for each platform in its own machine, and then merge the results and publish later. This can be useful if you need CGO, or if your build process takes too long. In this post we’ll set up an example using GitHub Actions and a sample project. GoReleaser config By default, GoReleaser will split by GOOS, so, if you run goreleaser release --split in a Linux machine, it’ll build all tar...| carlosbecker.com
Most people run GoReleaser by creating a tag locally, pushing it, and letting their CI takes care of the matter. Another lesser known option is to leverage workflow_dispatch on a GitHub Action to create the tag locally, and then “auto-creating” the tag once the release finishes. This has a couple of trade-offs, though: You’ll also have to set up signing in your workflow if you want to sign the tag; Go mod proxying will not work, as the tag is only created when the release finishes.| carlosbecker.com