mirror of
https://github.com/goreleaser/goreleaser.git
synced 2024-12-27 01:33:39 +02:00
e47589d332
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
417 lines
13 KiB
YAML
417 lines
13 KiB
YAML
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
|
|
# vim: set ts=2 sw=2 tw=0 fo=jcroql
|
|
version: 2
|
|
|
|
env:
|
|
- GO111MODULE=on
|
|
|
|
before:
|
|
hooks:
|
|
- go mod tidy
|
|
- ./scripts/completions.sh
|
|
- ./scripts/manpages.sh
|
|
|
|
snapshot:
|
|
name_template: "{{ incpatch .Version }}-next"
|
|
|
|
gomod:
|
|
proxy: true
|
|
|
|
report_sizes: true
|
|
|
|
git:
|
|
ignore_tags:
|
|
- "{{ if not .IsNightly }}nightly{{ end }}"
|
|
|
|
metadata:
|
|
mod_timestamp: "{{ .CommitTimestamp }}"
|
|
|
|
builds:
|
|
- env:
|
|
- CGO_ENABLED=0
|
|
goos:
|
|
- linux
|
|
- darwin
|
|
- windows
|
|
goarch:
|
|
- "386"
|
|
- amd64
|
|
- arm
|
|
- arm64
|
|
- ppc64
|
|
goarm:
|
|
- "7"
|
|
ignore:
|
|
- goos: windows
|
|
goarch: arm
|
|
mod_timestamp: "{{ .CommitTimestamp }}"
|
|
flags:
|
|
- -trimpath
|
|
ldflags:
|
|
- -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{ .CommitDate }} -X main.builtBy=goreleaser -X main.treeState={{ .IsGitDirty }}
|
|
|
|
universal_binaries:
|
|
- replace: false
|
|
|
|
notarize:
|
|
macos:
|
|
- enabled: '{{ isEnvSet "MACOS_SIGN_P12" }}'
|
|
sign:
|
|
certificate: "{{.Env.MACOS_SIGN_P12}}"
|
|
password: "{{.Env.MACOS_SIGN_PASSWORD}}"
|
|
notarize:
|
|
issuer_id: "{{.Env.MACOS_NOTARY_ISSUER_ID}}"
|
|
key_id: "{{.Env.MACOS_NOTARY_KEY_ID}}"
|
|
key: "{{.Env.MACOS_NOTARY_KEY}}"
|
|
|
|
# temporarely disables until we add better filters for platforms et al, and test more.
|
|
# upx:
|
|
# - enabled: true
|
|
|
|
checksum:
|
|
name_template: "checksums.txt"
|
|
|
|
changelog:
|
|
sort: asc
|
|
use: github
|
|
filters:
|
|
exclude:
|
|
- "^test:"
|
|
- "^test\\("
|
|
- "merge conflict"
|
|
- Merge pull request
|
|
- Merge remote-tracking branch
|
|
- Merge branch
|
|
- go mod tidy
|
|
groups:
|
|
- title: Dependency updates
|
|
regexp: '^.*?(.+)\(deps\)!?:.+$'
|
|
order: 300
|
|
- title: "New Features"
|
|
regexp: '^.*?feat(\(.+\))??!?:.+$'
|
|
order: 100
|
|
- title: "Security updates"
|
|
regexp: '^.*?sec(\(.+\))??!?:.+$'
|
|
order: 150
|
|
- title: "Bug fixes"
|
|
regexp: '^.*?(fix|refactor)(\(.+\))??!?:.+$'
|
|
order: 200
|
|
- title: "Documentation updates"
|
|
regexp: ^.*?docs?(\(.+\))??!?:.+$
|
|
order: 400
|
|
- title: "Build process updates"
|
|
regexp: ^.*?(build|ci)(\(.+\))??!?:.+$
|
|
order: 400
|
|
- title: Other work
|
|
order: 9999
|
|
|
|
dockers:
|
|
- image_templates:
|
|
- "goreleaser/goreleaser:v{{ .Version }}-amd64"
|
|
- "ghcr.io/goreleaser/goreleaser:v{{ .Version }}-amd64"
|
|
dockerfile: Dockerfile
|
|
use: buildx
|
|
build_flag_templates:
|
|
- "--pull"
|
|
- "--label=io.artifacthub.package.readme-url=https://raw.githubusercontent.com/goreleaser/goreleaser/main/README.md"
|
|
- "--label=io.artifacthub.package.logo-url=https://goreleaser.com/static/avatar.png"
|
|
- '--label=io.artifacthub.package.maintainers=[{"name":"Carlos Alexandro Becker","email":"carlos@carlosbecker.dev"}]'
|
|
- "--label=io.artifacthub.package.license=MIT"
|
|
- "--label=org.opencontainers.image.description=Deliver Go binaries as fast and easily as possible"
|
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
|
- "--label=org.opencontainers.image.name={{.ProjectName}}"
|
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
|
- "--label=org.opencontainers.image.version={{.Version}}"
|
|
- "--label=org.opencontainers.image.source={{.GitURL}}"
|
|
- "--platform=linux/amd64"
|
|
extra_files:
|
|
- scripts/entrypoint.sh
|
|
- image_templates:
|
|
- "goreleaser/goreleaser:v{{ .Version }}-arm64"
|
|
- "ghcr.io/goreleaser/goreleaser:v{{ .Version }}-arm64"
|
|
dockerfile: Dockerfile
|
|
use: buildx
|
|
build_flag_templates:
|
|
- "--pull"
|
|
- "--label=io.artifacthub.package.readme-url=https://raw.githubusercontent.com/goreleaser/goreleaser/main/README.md"
|
|
- "--label=io.artifacthub.package.logo-url=https://goreleaser.com/static/avatar.png"
|
|
- '--label=io.artifacthub.package.maintainers=[{"name":"Carlos Alexandro Becker","email":"carlos@carlosbecker.dev"}]'
|
|
- "--label=io.artifacthub.package.license=MIT"
|
|
- "--label=org.opencontainers.image.description=Deliver Go binaries as fast and easily as possible"
|
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
|
- "--label=org.opencontainers.image.name={{.ProjectName}}"
|
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
|
- "--label=org.opencontainers.image.version={{.Version}}"
|
|
- "--label=org.opencontainers.image.source={{.GitURL}}"
|
|
- "--platform=linux/arm64"
|
|
goarch: arm64
|
|
extra_files:
|
|
- scripts/entrypoint.sh
|
|
|
|
docker_manifests:
|
|
- name_template: "goreleaser/goreleaser:v{{ .Version }}"
|
|
image_templates:
|
|
- "goreleaser/goreleaser:v{{ .Version }}-amd64"
|
|
- "goreleaser/goreleaser:v{{ .Version }}-arm64"
|
|
- name_template: "ghcr.io/goreleaser/goreleaser:v{{ .Version }}"
|
|
image_templates:
|
|
- "ghcr.io/goreleaser/goreleaser:v{{ .Version }}-amd64"
|
|
- "ghcr.io/goreleaser/goreleaser:v{{ .Version }}-arm64"
|
|
- name_template: "{{ if not .IsNightly }}goreleaser/goreleaser:latest{{ end }}"
|
|
image_templates:
|
|
- "goreleaser/goreleaser:v{{ .Version }}-amd64"
|
|
- "goreleaser/goreleaser:v{{ .Version }}-arm64"
|
|
- name_template: "{{ if not .IsNightly }}ghcr.io/goreleaser/goreleaser:latest{{ end }}"
|
|
image_templates:
|
|
- "ghcr.io/goreleaser/goreleaser:v{{ .Version }}-amd64"
|
|
- "ghcr.io/goreleaser/goreleaser:v{{ .Version }}-arm64"
|
|
- name_template: "{{ if .IsNightly }}goreleaser/goreleaser:nightly{{ end }}"
|
|
image_templates:
|
|
- "goreleaser/goreleaser:v{{ .Version }}-amd64"
|
|
- "goreleaser/goreleaser:v{{ .Version }}-arm64"
|
|
- name_template: "{{ if .IsNightly }}ghcr.io/goreleaser/goreleaser:nightly{{ end }}"
|
|
image_templates:
|
|
- "ghcr.io/goreleaser/goreleaser:v{{ .Version }}-amd64"
|
|
- "ghcr.io/goreleaser/goreleaser:v{{ .Version }}-arm64"
|
|
|
|
archives:
|
|
- name_template: >-
|
|
{{- .ProjectName }}_
|
|
{{- title .Os }}_
|
|
{{- if eq .Arch "amd64" }}x86_64
|
|
{{- else if eq .Arch "386" }}i386
|
|
{{- else }}{{ .Arch }}{{ end }}
|
|
{{- if .Arm }}v{{ .Arm }}{{ end -}}
|
|
format_overrides:
|
|
- goos: windows
|
|
format: zip
|
|
builds_info:
|
|
group: root
|
|
owner: root
|
|
files:
|
|
- README.md
|
|
- LICENSE.md
|
|
- completions/*
|
|
- manpages/*
|
|
|
|
brews:
|
|
- repository:
|
|
owner: goreleaser
|
|
name: homebrew-tap
|
|
directory: Formula
|
|
goarm: "7"
|
|
homepage: https://goreleaser.com
|
|
description: Deliver Go binaries as fast and easily as possible
|
|
license: MIT
|
|
test: |
|
|
system "#{bin}/goreleaser -v"
|
|
dependencies:
|
|
- name: go
|
|
type: optional
|
|
- name: git
|
|
conflicts:
|
|
- goreleaser-pro
|
|
extra_install: |-
|
|
bash_completion.install "completions/goreleaser.bash" => "goreleaser"
|
|
zsh_completion.install "completions/goreleaser.zsh" => "_goreleaser"
|
|
fish_completion.install "completions/goreleaser.fish"
|
|
man1.install "manpages/goreleaser.1.gz"
|
|
|
|
nix:
|
|
- name: goreleaser
|
|
repository:
|
|
owner: goreleaser
|
|
name: nur
|
|
homepage: https://goreleaser.com
|
|
description: Deliver Go binaries as fast and easily as possible
|
|
path: pkgs/goreleaser/default.nix
|
|
license: mit
|
|
extra_install: |-
|
|
installManPage ./manpages/goreleaser.1.gz
|
|
installShellCompletion ./completions/*
|
|
|
|
winget:
|
|
- name: goreleaser
|
|
publisher: goreleaser
|
|
license: MIT
|
|
homepage: https://goreleaser.com
|
|
short_description: Deliver Go binaries as fast and easily as possible
|
|
repository:
|
|
owner: goreleaser
|
|
name: winget-pkgs
|
|
branch: "goreleaser-{{.Version}}"
|
|
pull_request:
|
|
enabled: true
|
|
draft: true
|
|
base:
|
|
owner: microsoft
|
|
name: winget-pkgs
|
|
branch: master
|
|
|
|
aurs:
|
|
- homepage: https://goreleaser.com
|
|
description: Deliver Go binaries as fast and easily as possible
|
|
maintainers:
|
|
- "Fernandez Ludovic <lfernandez dot dev at gmail dot com>"
|
|
- "Carlos Alexandro Becker <carlos at becker dot software>"
|
|
license: MIT
|
|
private_key: "{{ .Env.AUR_KEY }}"
|
|
git_url: "ssh://aur@aur.archlinux.org/goreleaser-bin.git"
|
|
package: |-
|
|
# bin
|
|
install -Dm755 "./goreleaser" "${pkgdir}/usr/bin/goreleaser"
|
|
|
|
# license
|
|
install -Dm644 "./LICENSE.md" "${pkgdir}/usr/share/licenses/goreleaser/LICENSE"
|
|
|
|
# completions
|
|
mkdir -p "${pkgdir}/usr/share/bash-completion/completions/"
|
|
mkdir -p "${pkgdir}/usr/share/zsh/site-functions/"
|
|
mkdir -p "${pkgdir}/usr/share/fish/vendor_completions.d/"
|
|
install -Dm644 "./completions/goreleaser.bash" "${pkgdir}/usr/share/bash-completion/completions/goreleaser"
|
|
install -Dm644 "./completions/goreleaser.zsh" "${pkgdir}/usr/share/zsh/site-functions/_goreleaser"
|
|
install -Dm644 "./completions/goreleaser.fish" "${pkgdir}/usr/share/fish/vendor_completions.d/goreleaser.fish"
|
|
|
|
# man pages
|
|
install -Dm644 "./manpages/goreleaser.1.gz" "${pkgdir}/usr/share/man/man1/goreleaser.1.gz"
|
|
|
|
scoops:
|
|
- repository:
|
|
owner: goreleaser
|
|
name: scoop-bucket
|
|
directory: bucket
|
|
homepage: https://goreleaser.com
|
|
description: Deliver Go binaries as fast and easily as possible
|
|
license: MIT
|
|
|
|
nfpms:
|
|
- file_name_template: "{{ .ConventionalFileName }}"
|
|
id: packages
|
|
homepage: https://goreleaser.com
|
|
description: |-
|
|
Deliver Go binaries as fast and easily as possible.
|
|
GoReleaser allows you to release easily build, package, publish and
|
|
announce to several places at one go.
|
|
maintainer: Carlos Alexandro Becker <carlos@becker.software>
|
|
license: MIT
|
|
vendor: GoReleaser
|
|
bindir: /usr/bin
|
|
section: utils
|
|
contents:
|
|
- src: ./completions/goreleaser.bash
|
|
dst: /usr/share/bash-completion/completions/goreleaser
|
|
file_info:
|
|
mode: 0644
|
|
- src: ./completions/goreleaser.fish
|
|
dst: /usr/share/fish/vendor_completions.d/goreleaser.fish
|
|
file_info:
|
|
mode: 0644
|
|
- src: ./completions/goreleaser.zsh
|
|
dst: /usr/share/zsh/vendor-completions/_goreleaser
|
|
file_info:
|
|
mode: 0644
|
|
- src: ./manpages/goreleaser.1.gz
|
|
dst: /usr/share/man/man1/goreleaser.1.gz
|
|
file_info:
|
|
mode: 0644
|
|
- src: ./LICENSE.md
|
|
dst: /usr/share/doc/goreleaser/copyright
|
|
file_info:
|
|
mode: 0644
|
|
formats:
|
|
- apk
|
|
- deb
|
|
- rpm
|
|
- archlinux
|
|
dependencies:
|
|
- git
|
|
recommends:
|
|
- golang
|
|
deb:
|
|
lintian_overrides:
|
|
- statically-linked-binary
|
|
- changelog-file-missing-in-native-package
|
|
|
|
snapcrafts:
|
|
- name_template: "{{ .ProjectName }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}"
|
|
summary: Deliver Go binaries as fast and easily as possible
|
|
description: |
|
|
GoReleaser builds Go binaries for several platforms, creates a GitHub
|
|
release and then pushes a Homebrew formula to a repository. All that
|
|
wrapped in your favorite CI.
|
|
grade: stable
|
|
confinement: classic
|
|
publish: true
|
|
disable: "{{ if .IsNightly }}true{{ end }}"
|
|
|
|
sboms:
|
|
- artifacts: archive
|
|
|
|
signs:
|
|
- cmd: cosign
|
|
certificate: "${artifact}.pem"
|
|
output: true
|
|
artifacts: checksum
|
|
args:
|
|
- sign-blob
|
|
- "--output-certificate=${certificate}"
|
|
- "--output-signature=${signature}"
|
|
- "${artifact}"
|
|
- --yes
|
|
|
|
docker_signs:
|
|
- cmd: cosign
|
|
artifacts: manifests
|
|
output: true
|
|
args:
|
|
- "sign"
|
|
- "${artifact}@${digest}"
|
|
- --yes
|
|
|
|
publishers:
|
|
- name: fury.io
|
|
ids:
|
|
- packages
|
|
env:
|
|
- "FURY_TOKEN={{ .Env.FURY_TOKEN }}"
|
|
cmd: ./scripts/fury-upload.sh {{ .ArtifactName }}
|
|
disable: "{{ if .IsNightly }}true{{ end }}"
|
|
|
|
milestones:
|
|
- close: true
|
|
|
|
release:
|
|
name_template: "v{{ .Version }}"
|
|
footer: |
|
|
**Full Changelog**: https://github.com/goreleaser/goreleaser/compare/{{ .PreviousTag }}...{{ if .IsNightly }}nightly{{ else }}{{ .Tag }}{{ end }}
|
|
|
|
{{ if not .IsNightly }}
|
|
## Helping out
|
|
|
|
This release is only possible thanks to **all** the support of some **awesome people**!
|
|
|
|
Want to be one of them?
|
|
You can [sponsor](https://goreleaser.com/sponsors/), get a [Pro License](https://goreleaser.com/pro) or [contribute with code](https://goreleaser.com/contributing).
|
|
|
|
## Where to go next?
|
|
|
|
* Find examples and commented usage of all options in our [website](https://goreleaser.com/intro/).
|
|
* Reach out on [Discord](https://discord.gg/RGEBtg8vQ6) and [Twitter](https://twitter.com/goreleaser)!
|
|
|
|
<a href="https://goreleaser.com"><img src="https://raw.githubusercontent.com/goreleaser/artwork/master/opencollective-header.png" with="100%" alt="GoReleaser logo"></a>
|
|
{{ end }}
|
|
|
|
announce:
|
|
twitter:
|
|
enabled: false
|
|
message_template: "GoReleaser {{ .Tag }} is out! Check it out: https://github.com/goreleaser/goreleaser/releases/tag/{{ .Tag }}"
|
|
|
|
mastodon:
|
|
enabled: true
|
|
message_template: "#GoReleaser {{ .Tag }} is out! Check it out: https://github.com/goreleaser/goreleaser/releases/tag/{{ .Tag }}"
|
|
server: https://fosstodon.org
|
|
|
|
discord:
|
|
enabled: true
|
|
message_template: "GoReleaser {{ .Tag }} is out! Check it out: https://github.com/goreleaser/goreleaser/releases/tag/{{ .Tag }}"
|