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>
This commit is contained in:
180
.goreleaser.yml
Normal file
180
.goreleaser.yml
Normal file
@@ -0,0 +1,180 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user