The generated application includes a fully automated release pipeline using GoReleaser and GitHub Actions. This pipeline handles building binaries for multiple platforms, creating a GitHub Release, generating an SBOM, and optionally updating a Homebrew Tap.

Default platforms configured for release:

  • Linux amd64
  • Linux arm64
  • Linux i386
  • macOS arm64
  • macOS amd64
  • Windows amd64
  • Windows arm64
  • Windows i386

Prerequisites

Before creating your first release, ensure you have:

  1. GITHUB_TOKEN: This is automatically provided by GitHub Actions and has permissions to create releases.
  2. TAP_GITHUB_TOKEN (Optional): If you enabled Homebrew integration, you must add this secret to your repository. See the Homebrew Integration for details.

Creating a Release

The release pipeline is triggered by pushing a git tag that starts with v.

1. Tag your commit

Navigate to your project root and create a new semantic version tag:

  git tag -a v1.0.0 -m "Release v1.0.0"
  

2. Push the tag

Push the tag to your GitHub repository:

  git push origin v1.0.0
  

3. Monitor the Release

Once the tag is pushed, a new workflow run will start in the Actions tab of your GitHub repository. The Release workflow will:

  • Run linting checks.
  • Build binaries for Linux, macOS, and Windows.
  • Generate an SBOM (Software Bill of Materials).
  • Create a new GitHub Release with the generated Release Notes.
  • Upload all artifacts to the release.
  • Update your Homebrew Tap (if configured).

Local Testing

You can test the release process locally using the GoReleaser CLI without publishing:

  goreleaser release --snapshot --clean
  

This will build the binaries and create the archives in the dist/ directory, allowing you to verify the output before pushing a tag.