-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy path.goreleaser.yml
More file actions
162 lines (141 loc) · 3.77 KB
/
Copy path.goreleaser.yml
File metadata and controls
162 lines (141 loc) · 3.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
version: 2
project_name: rig
before:
hooks:
- go mod tidy
builds:
- id: rig
main: .
binary: rig
env:
- CGO_ENABLED=0
flags:
- -trimpath
ldflags:
- -s -w
- -X thoreinstein.com/rig/cmd.Version={{.Version}}
- -X thoreinstein.com/rig/cmd.commit={{.Commit}}
- -X thoreinstein.com/rig/cmd.date={{.Date}}
goos:
- linux
- darwin
- windows
goarch:
- amd64
- arm64
ignore:
# Windows ARM64 is less common and harder to cross-compile
- goos: windows
goarch: arm64
archives:
- id: default
formats:
- tar.gz
name_template: >-
{{ .ProjectName }}_
{{- .Version }}_
{{- .Os }}_
{{- .Arch }}
format_overrides:
- goos: windows
formats:
- zip
files:
- README.md
- LICENSE*
checksum:
name_template: checksums.txt
algorithm: sha256
# Keyless signing with Sigstore (no secrets required)
signs:
- cmd: cosign
artifacts: checksum
output: true
signature: "${artifact}.bundle"
args:
- sign-blob
- "--yes"
- "--bundle=${signature}"
- "${artifact}"
# Generate Software Bill of Materials for supply chain transparency
sboms:
- artifacts: archive
documents:
- "${artifact}.sbom.json"
snapshot:
version_template: "{{ incpatch .Version }}-next"
changelog:
sort: asc
use: github
filters:
exclude:
- "^docs:"
- "^test:"
- "^ci:"
- "^chore:"
- Merge pull request
- Merge branch
groups:
- title: Features
regexp: '^.*?feat(\([[:word:]]+\))??!?:.+$'
order: 0
- title: Bug Fixes
regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$'
order: 1
- title: Other
order: 999
homebrew_casks:
- name: rig
repository:
owner: thoreinstein
name: homebrew-tap
branch: main
token: "{{ .Env.HOMEBREW_TAP_TOKEN }}"
directory: Casks
homepage: https://github.com/thoreinstein/rig
description: "Developer workflow automation CLI for Git worktrees, Tmux, and Obsidian integration"
license: "Unlicense"
# CLI binaries (replaces install: block)
binaries:
- rig
# Auto-remove macOS quarantine on install
hooks:
post:
install: |
if OS.mac?
system_command "/usr/bin/xattr", args: ["-dr", "com.apple.quarantine", "#{staged_path}/rig"]
end
# URL verification for brew audit
url:
verified: "github.com/thoreinstein/rig/"
release:
github:
owner: thoreinstein
name: rig
draft: false
prerelease: auto
mode: replace
header: |
## Rig {{ .Version }}
**Homebrew Installation (Recommended):**
```bash
brew install thoreinstein/tap/rig
rig version # Should output: rig version {{ .Version }}
```
**Manual Download:**
Download the appropriate archive below for your platform, extract it, and move the `rig` binary to your PATH.
Note: Homebrew installation automatically handles macOS code signing. Manual downloads work without additional configuration.
### Verifying Release Signatures
All releases are signed with [keyless Sigstore](https://www.sigstore.dev/). To verify:
```bash
# Install cosign: https://docs.sigstore.dev/cosign/system_config/installation/
cosign verify-blob \
--bundle checksums.txt.bundle \
--certificate-identity 'https://github.com/thoreinstein/rig/.github/workflows/release.yml@refs/tags/{{ .Tag }}' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
checksums.txt
```
footer: |
**Full Changelog**: https://github.com/thoreinstein/rig/compare/{{ .PreviousTag }}...{{ .Tag }}
name_template: "v{{ .Version }}"