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:
- Builds binaries for all platforms:
linux/amd64,linux/arm64darwin/amd64,darwin/arm64windows/amd64
- Generates checksums (
checksums.txt) - Creates a GitHub Release with:
- Release notes (from commit history)
- Binary assets
- Checksums file
- 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
- Building — Local build commands
- Self-Update — How users update