Skip to content

Commit f97fe4e

Browse files
committed
Add release configuration
- Add .goreleaser.yaml for automated cross-platform builds - Add GitHub Actions workflow for releases - Add agent instructions for creating releases - Configure Homebrew tap support
1 parent 82f4dc0 commit f97fe4e

File tree

3 files changed

+141
-0
lines changed

3 files changed

+141
-0
lines changed

.github/workflows/release.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
goreleaser:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v5
17+
with:
18+
fetch-depth: 0
19+
20+
- name: Set up Go
21+
uses: actions/setup-go@v5
22+
with:
23+
go-version: '1.25'
24+
25+
- name: Cache Go modules
26+
uses: actions/cache@v4
27+
with:
28+
path: |
29+
~/.cache/go-build
30+
~/go/pkg/mod
31+
key: ${{ runner.os }}-go-1.25-${{ hashFiles('**/go.sum') }}
32+
restore-keys: |
33+
${{ runner.os }}-go-1.25-
34+
35+
- name: Run tests
36+
run: make test
37+
38+
- name: Run GoReleaser
39+
uses: goreleaser/goreleaser-action@v6
40+
with:
41+
distribution: goreleaser
42+
version: '~> v2'
43+
args: release --clean
44+
env:
45+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
46+
GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}
47+
GITHUB_REPOSITORY_NAME: ${{ github.event.repository.name }}
48+
GORELEASER_GITHUB_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }}

.goreleaser.yaml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
version: 2
2+
3+
project_name: sentire
4+
5+
before:
6+
hooks:
7+
- go mod tidy
8+
- go generate ./...
9+
10+
builds:
11+
- main: ./cmd/sentire/main.go
12+
binary: sentire
13+
env:
14+
- CGO_ENABLED=0
15+
goos:
16+
- linux
17+
- darwin
18+
- windows
19+
goarch:
20+
- amd64
21+
- arm64
22+
ignore:
23+
- goos: windows
24+
goarch: arm64
25+
ldflags:
26+
- -s -w -X sentire/internal/version.Version={{.Version}}
27+
28+
archives:
29+
- name_template: >-
30+
{{ .ProjectName }}_
31+
{{- title .Os }}_
32+
{{- if eq .Arch "amd64" }}x86_64
33+
{{- else if eq .Arch "386" }}i386
34+
{{- else }}{{ .Arch }}{{ end }}
35+
{{- if .Arm }}v{{ .Arm }}{{ end }}
36+
format_overrides:
37+
- goos: windows
38+
format: zip
39+
files:
40+
- README.md
41+
- LICENSE
42+
43+
checksum:
44+
name_template: 'checksums.txt'
45+
46+
changelog:
47+
sort: asc
48+
filters:
49+
exclude:
50+
- '^docs:'
51+
- '^test:'
52+
- '^ci:'
53+
- Merge pull request
54+
- Merge branch
55+
- go mod tidy
56+
57+
release:
58+
name_template: "Release v{{ .Version }}"
59+
draft: false
60+
prerelease: auto
61+
62+
brews:
63+
- name: sentire
64+
repository:
65+
owner: andreagrandi
66+
name: homebrew-tap
67+
token: "{{ .Env.GORELEASER_GITHUB_TOKEN }}"
68+
commit_author:
69+
name: goreleaserbot
70+
71+
directory: Formula
72+
homepage: "https://github.com/andreagrandi/sentire"
73+
description: "Sentire - A CLI tool for the Sentry API"
74+
license: "MIT"
75+
test: |
76+
system "#{bin}/sentire --version"
77+
install: |
78+
bin.install "sentire"

.opencode/agent/new-release.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
description: Create a new release for this application, bumping the version and updating the changelog
3+
mode: subagent
4+
---
5+
6+
When asked to create a new release, you need to:
7+
- Make sure `make test` passes without errors
8+
- Use the provided version number or
9+
Bump the version number in internal/version/version.go:
10+
if you find `const Version = "0.1.0"` change to `const Version = "0.1.1"`
11+
- Update the changelog writing a short summary of the changes since last release (with bullet points), follow existing format
12+
- git commit the changes you just did
13+
- git push the changes you just did
14+
- do `git tag v<version>` (use the version you just bumped to in the `internal/version/version.go`)
15+
- do `git push origin v<version>`

0 commit comments

Comments
 (0)