-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy path.goreleaser.yaml
More file actions
152 lines (139 loc) · 4.14 KB
/
.goreleaser.yaml
File metadata and controls
152 lines (139 loc) · 4.14 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
# GoReleaser configuration for basecamp
# Docs: https://goreleaser.com
version: 2
project_name: basecamp
before:
hooks:
- sh -c 'mkdir -p completions && go run ./cmd/basecamp completion bash > completions/basecamp.bash && go run ./cmd/basecamp completion zsh > completions/_basecamp && go run ./cmd/basecamp completion fish > completions/basecamp.fish'
- scripts/stamp-plugin-version.sh {{ .Version }}
builds:
- id: basecamp
main: ./cmd/basecamp
binary: basecamp
env:
- CGO_ENABLED=0
goos:
- darwin
- linux
- windows
- freebsd
- openbsd
goarch:
- amd64
- arm64
flags:
- -trimpath
ldflags:
- -s -w
- -X github.com/basecamp/basecamp-cli/internal/version.Version={{.Version}}
- -X github.com/basecamp/basecamp-cli/internal/version.Commit={{.Commit}}
- -X github.com/basecamp/basecamp-cli/internal/version.Date={{.Date}}
hooks:
post:
- cmd: scripts/sign-darwin.sh "{{ .Os }}" "{{ .Path }}"
output: true
archives:
- id: default
formats:
- tar.gz
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
format_overrides:
- goos: windows
formats:
- zip
files:
- MIT-LICENSE
- README*
- completions/*
nfpms:
- id: packages
package_name: basecamp-cli
ids: [basecamp]
vendor: 37signals
homepage: "https://github.com/basecamp/basecamp-cli"
maintainer: "37signals <support@37signals.com>"
description: "Command-line interface for Basecamp"
license: MIT
formats:
- deb
- rpm
- apk
contents:
- src: completions/basecamp.bash
dst: /usr/share/bash-completion/completions/basecamp
- src: completions/_basecamp
dst: /usr/share/zsh/vendor-completions/_basecamp
packager: deb
- src: completions/_basecamp
dst: /usr/share/zsh/vendor-completions/_basecamp
packager: apk
- src: completions/_basecamp
dst: /usr/share/zsh/site-functions/_basecamp
packager: rpm
- src: completions/basecamp.fish
dst: /usr/share/fish/vendor_completions.d/basecamp.fish
checksum:
name_template: 'checksums.txt'
algorithm: sha256
# Generate SBOM for supply chain transparency
sboms:
- artifacts: archive
# Sign checksums with cosign (keyless via Sigstore)
# Requires: permissions.id-token: write in workflow for OIDC
signs:
- cmd: cosign
signature: '${artifact}.bundle'
args:
- sign-blob
- '--bundle=${signature}'
- '${artifact}'
- '--yes'
artifacts: checksum
output: true
# Signing handled by scripts/sign-darwin.sh via build hook using anchore/quill
# CLI directly. The goreleaser/quill fork lacks the TeamIdentifier fix from
# anchore/quill v0.7.0 (https://github.com/anchore/quill/issues/147).
# Notarization runs as a separate workflow step after GoReleaser publishes.
notarize:
macos:
- enabled: 'false'
changelog:
# Use GitHub's auto-generated release notes (categories configured in .github/release.yml)
use: github-native
release:
github:
owner: basecamp
name: basecamp-cli
draft: false
prerelease: auto
replace_existing_artifacts: true
name_template: "{{.ProjectName}} v{{.Version}}"
header: |
{{ if .Env.RELEASE_CHANGELOG }}{{ .Env.RELEASE_CHANGELOG }}{{ end }}
homebrew_casks:
- name: basecamp-cli
repository:
owner: basecamp
name: homebrew-tap
token: "{{ .Env.HOMEBREW_TAP_TOKEN }}"
directory: Casks
homepage: "https://github.com/basecamp/basecamp-cli"
description: "Command-line interface for Basecamp"
binaries:
- basecamp
completions:
bash: "completions/basecamp.bash"
zsh: "completions/_basecamp"
fish: "completions/basecamp.fish"
skip_upload: auto
scoops:
- name: basecamp-cli
repository:
owner: basecamp
name: homebrew-tap
token: "{{ .Env.HOMEBREW_TAP_TOKEN }}"
homepage: "https://github.com/basecamp/basecamp-cli"
description: "Command-line interface for Basecamp"
license: MIT
skip_upload: auto
# AUR publishing handled by scripts/publish-aur.sh (GoReleaser enforces -bin suffix)