# 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: version_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 - riscv64 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 mtime: "{{ .CommitDate }}" files: - src: README.md info: owner: root group: root mtime: "{{ .CommitDate }}" - src: LICENSE.md info: owner: root group: root mtime: "{{ .CommitDate }}" - src: completions/* info: owner: root group: root mtime: "{{ .CommitDate }}" - src: manpages/* info: owner: root group: root mtime: "{{ .CommitDate }}" 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 " - "Carlos Alexandro Becker " 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 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)! GoReleaser logo {{ 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 }}"