1+ # yaml-language-server: $schema=https://goreleaser.com/static/schema.json
2+ # vim: set ts=2 sw=2 tw=0 fo=jcroql
3+ # GoReleaser configuration for gopose
4+ # https://goreleaser.com/customization/
5+
6+ version : 2
7+
8+ project_name : gopose
9+
10+ # Global environment
11+ env :
12+ - GO111MODULE=on
13+
14+ # Pre-build hooks
15+ before :
16+ hooks :
17+ - go mod tidy
18+ - go generate ./...
19+
20+ # Snapshot version template
21+ snapshot :
22+ version_template : " {{ incpatch .Version }}-next"
23+
24+ # Go modules proxy
25+ gomod :
26+ proxy : true
27+
28+ # Report binary sizes
29+ report_sizes : true
30+
31+ # Git configuration
32+ git :
33+ ignore_tags :
34+ - " {{ if not .IsNightly }}nightly{{ end }}"
35+
36+ # Metadata configuration
37+ metadata :
38+ mod_timestamp : " {{ .CommitTimestamp }}"
39+
40+ # Build configuration
41+ builds :
42+ - id : gopose
43+ binary : gopose
44+ main : ./main.go
45+ goos :
46+ - linux
47+ - darwin
48+ - windows
49+ goarch :
50+ - amd64
51+ - arm64
52+ - " 386"
53+ goarm :
54+ - " 7"
55+ ignore :
56+ - goos : windows
57+ goarch : arm64
58+ env :
59+ - CGO_ENABLED=0
60+ flags :
61+ - -trimpath
62+ ldflags :
63+ - -s -w
64+ - -X main.version={{.Version}}
65+ - -X main.commit={{.Commit}}
66+ - -X main.date={{.CommitDate}}
67+ - -X main.builtBy=goreleaser
68+ - -X main.treeState={{ .IsGitDirty }}
69+ mod_timestamp : " {{ .CommitTimestamp }}"
70+
71+ # Archive configuration
72+ archives :
73+ - id : gopose
74+ ids :
75+ - gopose
76+ formats : ['tar.gz']
77+ format_overrides :
78+ - goos : windows
79+ formats : ['zip']
80+ name_template : " {{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
81+ files :
82+ - README.md
83+ - LICENSE*
84+ - CHANGELOG*
85+
86+ # Checksum configuration
87+ checksum :
88+ name_template : " {{ .ProjectName }}_{{ .Version }}_checksums.txt"
89+
90+ # Changelog configuration
91+ changelog :
92+ use : github
93+ sort : asc
94+ abbrev : 0
95+ groups :
96+ - title : " 🚀 Features"
97+ regexp : ' ^.*?feat(\([[:word:]]+\))??!?:.+$'
98+ order : 0
99+ - title : " 🐛 Bug Fixes"
100+ regexp : ' ^.*?fix(\([[:word:]]+\))??!?:.+$'
101+ order : 1
102+ - title : " 📚 Documentation"
103+ regexp : ' ^.*?docs(\([[:word:]]+\))??!?:.+$'
104+ order : 2
105+ - title : " 🔧 Other Changes"
106+ order : 999
107+ filters :
108+ exclude :
109+ - ' ^test:'
110+ - ' ^ci:'
111+ - ' ^chore:'
112+ - merge conflict
113+ - Merge pull request
114+
115+ # Release configuration
116+ release :
117+ github :
118+ owner : harakeishi
119+ name : gopose
120+ draft : false
121+ prerelease : auto
122+ mode : replace
123+ header : |
124+ ## Changes
125+
126+ Welcome to this new release of gopose!
127+
128+ footer : |
129+ ## Docker
130+
131+ You can also run gopose using Docker:
132+
133+ ```bash
134+ docker run --rm -v $(pwd):/workspace ghcr.io/harakeishi/gopose:{{ .Tag }} up
135+ ```
136+
137+ name_template : " {{.ProjectName}}-v{{.Version}}"
138+
139+ # Homebrew casks (updated for v2)
140+ homebrew_casks :
141+ - repository :
142+ owner : harakeishi
143+ name : homebrew-tap
144+ branch : main
145+ homepage : https://github.com/harakeishi/gopose
146+ description : " Go Port Override Solution Engine - Docker Compose port conflict resolver"
147+ license : " MIT"
148+
149+ # Snapcraft
150+ snapcrafts :
151+ - id : gopose
152+ ids :
153+ - gopose
154+ name : gopose
155+ title : gopose
156+ summary : Docker Compose port conflict resolver
157+ description : |
158+ gopose is a Go-based tool that automatically detects and resolves
159+ Docker Compose port conflicts by generating override files.
160+ grade : stable
161+ confinement : strict
162+ license : MIT
163+ base : core22
164+ apps :
165+ gopose :
166+ command : gopose
167+ plugs : ["home", "network"]
168+
169+ # Docker images
170+ dockers :
171+ - image_templates :
172+ - " ghcr.io/harakeishi/gopose:latest"
173+ - " ghcr.io/harakeishi/gopose:{{ .Tag }}"
174+ - " ghcr.io/harakeishi/gopose:v{{ .Major }}"
175+ - " ghcr.io/harakeishi/gopose:v{{ .Major }}.{{ .Minor }}"
176+ dockerfile : |
177+ FROM alpine:3.19
178+ RUN apk add --no-cache ca-certificates tzdata
179+ COPY gopose /usr/local/bin/
180+ WORKDIR /workspace
181+ ENTRYPOINT ["/usr/local/bin/gopose"]
182+ build_flag_templates :
183+ - " --platform=linux/amd64"
184+ - " --label=org.opencontainers.image.title={{.ProjectName}}"
185+ - " --label=org.opencontainers.image.description=Docker Compose port conflict resolver"
186+ - " --label=org.opencontainers.image.url=https://github.com/harakeishi/gopose"
187+ - " --label=org.opencontainers.image.source=https://github.com/harakeishi/gopose"
188+ - " --label=org.opencontainers.image.version={{.Version}}"
189+ - " --label=org.opencontainers.image.created={{.Date}}"
190+ - " --label=org.opencontainers.image.revision={{.FullCommit}}"
191+ - " --label=org.opencontainers.image.licenses=MIT"
192+
193+ # Announcement
194+ announce :
195+ skip : " {{gt .Patch 0}}"
0 commit comments