Files
gastown/.goreleaser.yml
jack 03ffefc962 feat: Add GitHub deployment artifacts (homebrew, npm) (gt-ufep6)
- Add .goreleaser.yml for multi-platform binary releases
- Add npm-package/ with postinstall binary download
- Add release.yml workflow for GoReleaser + npm publish + Homebrew tap

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 00:19:26 -08:00

181 lines
4.4 KiB
YAML

# GoReleaser configuration for Gas Town (gt)
# See https://goreleaser.com for documentation
version: 2
before:
hooks:
# Ensure dependencies are up to date
- go mod tidy
builds:
- id: gt-linux-amd64
main: ./cmd/gt
binary: gt
env:
- CGO_ENABLED=1
goos:
- linux
goarch:
- amd64
ldflags:
- -s -w
- -X github.com/steveyegge/gastown/internal/cmd.Version={{.Version}}
- -X github.com/steveyegge/gastown/internal/cmd.Build={{.ShortCommit}}
- -X github.com/steveyegge/gastown/internal/cmd.Commit={{.Commit}}
- -X github.com/steveyegge/gastown/internal/cmd.Branch={{.Branch}}
- id: gt-linux-arm64
main: ./cmd/gt
binary: gt
env:
- CGO_ENABLED=1
- CC=aarch64-linux-gnu-gcc
- CXX=aarch64-linux-gnu-g++
goos:
- linux
goarch:
- arm64
ldflags:
- -s -w
- -X github.com/steveyegge/gastown/internal/cmd.Version={{.Version}}
- -X github.com/steveyegge/gastown/internal/cmd.Build={{.ShortCommit}}
- -X github.com/steveyegge/gastown/internal/cmd.Commit={{.Commit}}
- -X github.com/steveyegge/gastown/internal/cmd.Branch={{.Branch}}
- id: gt-darwin-amd64
main: ./cmd/gt
binary: gt
env:
- CGO_ENABLED=1
goos:
- darwin
goarch:
- amd64
ldflags:
- -s -w
- -X github.com/steveyegge/gastown/internal/cmd.Version={{.Version}}
- -X github.com/steveyegge/gastown/internal/cmd.Build={{.ShortCommit}}
- -X github.com/steveyegge/gastown/internal/cmd.Commit={{.Commit}}
- -X github.com/steveyegge/gastown/internal/cmd.Branch={{.Branch}}
- id: gt-darwin-arm64
main: ./cmd/gt
binary: gt
env:
- CGO_ENABLED=1
goos:
- darwin
goarch:
- arm64
ldflags:
- -s -w
- -X github.com/steveyegge/gastown/internal/cmd.Version={{.Version}}
- -X github.com/steveyegge/gastown/internal/cmd.Build={{.ShortCommit}}
- -X github.com/steveyegge/gastown/internal/cmd.Commit={{.Commit}}
- -X github.com/steveyegge/gastown/internal/cmd.Branch={{.Branch}}
- id: gt-windows-amd64
main: ./cmd/gt
binary: gt
env:
- CGO_ENABLED=1
- CC=x86_64-w64-mingw32-gcc
- CXX=x86_64-w64-mingw32-g++
goos:
- windows
goarch:
- amd64
ldflags:
- -s -w
- -X github.com/steveyegge/gastown/internal/cmd.Version={{.Version}}
- -X github.com/steveyegge/gastown/internal/cmd.Build={{.ShortCommit}}
- -X github.com/steveyegge/gastown/internal/cmd.Commit={{.Commit}}
- -X github.com/steveyegge/gastown/internal/cmd.Branch={{.Branch}}
- -buildmode=exe
- id: gt-freebsd-amd64
main: ./cmd/gt
binary: gt
env:
- CGO_ENABLED=0
goos:
- freebsd
goarch:
- amd64
ldflags:
- -s -w
- -X github.com/steveyegge/gastown/internal/cmd.Version={{.Version}}
- -X github.com/steveyegge/gastown/internal/cmd.Build={{.ShortCommit}}
- -X github.com/steveyegge/gastown/internal/cmd.Commit={{.Commit}}
- -X github.com/steveyegge/gastown/internal/cmd.Branch={{.Branch}}
archives:
- id: gt-archive
format: tar.gz
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
format_overrides:
- goos: windows
format: zip
files:
- LICENSE
- README.md
checksum:
name_template: "checksums.txt"
algorithm: sha256
snapshot:
version_template: "{{ incpatch .Version }}-next"
changelog:
sort: asc
filters:
exclude:
- "^docs:"
- "^test:"
- "^chore:"
- "Merge pull request"
- "Merge branch"
groups:
- title: "Features"
regexp: '^.*feat(\(\w+\))?:.*$'
order: 0
- title: "Bug Fixes"
regexp: '^.*fix(\(\w+\))?:.*$'
order: 1
- title: "Others"
order: 999
release:
github:
owner: steveyegge
name: gastown
draft: false
prerelease: auto
name_template: "v{{.Version}}"
header: |
## Gas Town v{{.Version}}
Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), and Windows.
### Installation
**Homebrew (macOS/Linux):**
```bash
brew install steveyegge/gastown/gt
```
**npm (Node.js):**
```bash
npm install -g @gastown/gt
```
**Manual Install:**
Download the appropriate binary for your platform below, extract it, and place it in your PATH.
# Announce the release
announce:
skip: false