Skip to main content

Release Process

Runix uses GoReleaser for automated releases triggered by git tags.

Configuration​

The release configuration is in .goreleaser.yaml at the project root.

Release Steps​

1. Ensure Clean State​

git status # No uncommitted changes
make test # All tests pass
make vet # No vet issues

2. Tag the Release​

git tag v0.2.0
git push --tags

3. GoReleaser Runs Automatically​

The GitHub Actions workflow detects the tag and runs GoReleaser:

  1. Builds binaries for all platforms:
    • linux/amd64, linux/arm64
    • darwin/amd64, darwin/arm64
    • windows/amd64
  2. Generates checksums (checksums.txt)
  3. Creates a GitHub Release with:
    • Release notes (from commit history)
    • Binary assets
    • Checksums file
  4. Publishes the release

4. Verify​

Check the release at: https://github.com/runixio/runix/releases/tag/v0.2.0

Build Details​

Each binary is built with:

env:
- CGO_ENABLED=0
flags:
- -trimpath
ldflags:
- -X github.com/runixio/runix/internal/version.Version={{.Version}}
- -X github.com/runixio/runix/internal/version.BuildTime={{.Date}}

Checksums​

GoReleaser generates a checksums.txt file with SHA256 hashes for all binaries. This file is used by runix update to verify downloads.

Install Script​

The scripts/install.sh script downloads the latest release binary:

curl -fsSL https://raw.githubusercontent.com/runixio/runix/main/scripts/install.sh | bash

What's Next​