Replies: 5 comments 4 replies
-
An issue we struggle with is making sweeping changes to the GoReleaser configuration across repositories. Most of our GoReleaser configurations are the same for builds, nfpms, dockers, etc. With the occasional extra file copied to a debian or docker image. One feature that would make my life wayyyy easier is to some how allow specifying a template to use, but still allow overriding specific parts. Something like... For the template idea we would go from this... builds:
- id: acme-cli
main: ./cmd/acme-cli
binary: acme-cli
flags:
- -trimpath
goos:
- linux
- darwin
- windows
goarch:
- amd64
- arm64
env:
- CGO_ENABLED=0
archives:
- id: acme-cli
name_template: '{{ replace .Binary "_" "-" }}_{{ .Version }}_{{ title .Os }}_{{- if eq .Arch "amd64" }}x86_64{{- else }}{{ .Arch }}{{ end }}{{- if .Arm }}v{{ .Arm }}{{ end }}'
format_overrides:
- goos: windows
format: zip
files:
- none*
brews:
- name: acme-cli
ids:
- acme-cli
repository:
owner: acme-cli
name: homebrew-tap
commit_author:
name: goreleaserbot
email: [email protected]
url_template: '{{ .Env.ARTIFACTS_BASE_URL }}/{{ .Env.ARTIFACTS_ARCHIVE_REPOSITORY }}/{{ .ProjectName }}/{{ .Version }}/{{ .ArtifactName }}'
homepage: '{{ .GitURL }}'
folder: Formula
skip_upload: true To this... includes:
- from_file:
path: .goreleaser.templates.yml
builds:
- id: acme-cli
main: ./cmd/acme-cli
binary: acme-cli
template: cloud-cli-builds
archives:
- id: acme-cli
template: cloud-cli-archives
brews:
- name: acme-cli
ids:
- acme-cli
template: cloud-cli-homebrew Then the template section might look like... templates:
builds:
- id: cloud-cli-builds
template:
flags:
- -trimpath
goos:
- linux
- darwin
- windows
goarch:
- amd64
- arm64
env:
- CGO_ENABLED=0
archives:
- id: cloud-cli-archives
template:
name_template: '{{ replace .Binary "_" "-" }}_{{ .Version }}_{{ title .Os }}_{{- if eq .Arch "amd64" }}x86_64{{- else }}{{ .Arch }}{{ end }}{{- if .Arm }}v{{ .Arm }}{{ end }}'
format_overrides:
- goos: windows
format: zip
files:
- none*
brews:
- id: cloud-cli-homebrew
template:
repository:
owner: acme-cli
name: homebrew-tap
commit_author:
name: goreleaserbot
email: [email protected]
url_template: '{{ .Env.ARTIFACTS_BASE_URL }}/{{ .Env.ARTIFACTS_ARCHIVE_REPOSITORY }}/{{ .ProjectName }}/{{ .Version }}/{{ .ArtifactName }}'
homepage: '{{ .GitURL }}'
folder: Formula
skip_upload: true This would allow us to fix most breaking changes in one file instead of hundreds. |
Beta Was this translation helpful? Give feedback.
-
I would like to have godownloader i.e. publishing install scripts as an artifact as part of goreleaser |
Beta Was this translation helpful? Give feedback.
-
Would be nice if there was an option to put the CHANGELOG somewhere else say, for example, in the git repository itself. Would be useful for people using this tool with other platforms like BitBucket. |
Beta Was this translation helpful? Give feedback.
-
I would like to have a fully polished, integrated sign and notarize workflow when building and creating packages for macos. I also know this has been discussed multiple times in different places, such as https://github.com/orgs/goreleaser/discussions/3350 This is an important step for macos, so it would be nice if it is a polished part of goreleaser as well. |
Beta Was this translation helpful? Give feedback.
-
@caarlos0 Have you considered my feature request for adding support for additional programming languages? Our team is planning to expand CI support beyond Go, and we see GoReleaser as a highly beneficial tool that could bring similar value to other languages. |
Beta Was this translation helpful? Give feedback.
-
Hey GoReleaser community!
I started to work on v2, which will have breaking changes... so, if you have suggestions, the time is now!
Throw here your wishes for goreleaser v2, even if it breaks old configurations 🙏
Beta Was this translation helpful? Give feedback.
All reactions