1
1
Fork 0
mirror of https://github.com/goreleaser/nfpm synced 2024-04-24 00:55:10 +02:00
nfpm/.goreleaser.yml
2024-04-01 11:59:05 -03:00

317 lines
9.3 KiB
YAML

# yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json
env:
- GO111MODULE=on
before:
hooks:
- go mod tidy
- ./scripts/completions.sh
- ./scripts/manpages.sh
gomod:
proxy: true
builds:
- main: ./cmd/nfpm
env:
- CGO_ENABLED=0
goos:
- linux
- darwin
- windows
goarch:
- amd64
- arm64
- ppc64le
- s390x
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 }}
dockers:
- image_templates:
- "goreleaser/nfpm:{{ .Tag }}-amd64"
- "ghcr.io/goreleaser/nfpm:{{ .Tag }}-amd64"
dockerfile: Dockerfile
use: buildx
build_flag_templates:
- "--pull"
- "--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"
- image_templates:
- "goreleaser/nfpm:{{ .Tag }}-arm64v8"
- "ghcr.io/goreleaser/nfpm:{{ .Tag }}-arm64v8"
dockerfile: Dockerfile
use: buildx
build_flag_templates:
- "--pull"
- "--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/v8"
goarch: arm64
docker_manifests:
- name_template: "goreleaser/nfpm:{{ .Tag }}"
image_templates:
- "goreleaser/nfpm:{{ .Tag }}-amd64"
- "goreleaser/nfpm:{{ .Tag }}-arm64v8"
- name_template: "ghcr.io/goreleaser/nfpm:{{ .Tag }}"
image_templates:
- "ghcr.io/goreleaser/nfpm:{{ .Tag }}-amd64"
- "ghcr.io/goreleaser/nfpm:{{ .Tag }}-arm64v8"
- name_template: "goreleaser/nfpm:latest"
image_templates:
- "goreleaser/nfpm:{{ .Tag }}-amd64"
- "goreleaser/nfpm:{{ .Tag }}-arm64v8"
- name_template: "ghcr.io/goreleaser/nfpm:latest"
image_templates:
- "ghcr.io/goreleaser/nfpm:{{ .Tag }}-amd64"
- "ghcr.io/goreleaser/nfpm:{{ .Tag }}-arm64v8"
archives:
- name_template: >-
{{ .ProjectName }}_
{{- .Version }}_
{{- title .Os }}_
{{- if eq .Arch "amd64" }}x86_64
{{- else if eq .Arch "386" }}i386
{{- else }}{{ .Arch }}{{ end }}
format_overrides:
- goos: windows
format: zip
files:
- README.md
- LICENSE.md
- completions/*
- manpages/*
brews:
- repository:
owner: goreleaser
name: homebrew-tap
folder: Formula
homepage: https://nfpm.goreleaser.com
description: nFPM is a simple, 0-dependencies, deb, rpm and apk packager.
license: MIT
test: |
system "#{bin}/nfpm -v"
install: |-
bin.install "nfpm"
bash_completion.install "completions/nfpm.bash" => "nfpm"
zsh_completion.install "completions/nfpm.zsh" => "_nfpm"
fish_completion.install "completions/nfpm.fish"
man1.install "manpages/nfpm.1.gz"
scoops:
- repository:
owner: goreleaser
name: scoop-bucket
homepage: https://nfpm.goreleaser.com
folder: bucket
description: nFPM is a simple, 0-dependencies, deb, rpm and apk packager.
license: MIT
nix:
- name: nfpm
repository:
owner: goreleaser
name: nur
homepage: https://nfpm.goreleaser.com
description: nFPM is a simple, 0-dependencies, deb, rpm and apk packager.
path: pkgs/nfpm/default.nix
license: mit
extra_install: |-
installManPage ./manpages/nfpm.1.gz
installShellCompletion ./completions/*
winget:
- name: nfpm
publisher: goreleaser
license: Copyright Becker Software LTDA
copyright: Becker Software LTDA
homepage: https://nfpm.goreleaser.com
short_description: nFPM is a simple, 0-dependencies, deb, rpm and apk packager.
repository:
owner: goreleaser
name: winget-pkgs
branch: "nfpm-{{.Version}}"
pull_request:
enabled: true
draft: false
check_boxes: true
base:
owner: microsoft
name: winget-pkgs
branch: master
nfpms:
- file_name_template: "{{ .ConventionalFileName }}"
homepage: https://nfpm.goreleaser.com
description: |-
Simple, 0-dependencies, deb, rpm and apk packager.
nFPM (not FPM) is configurable via YAML and does not need any
packaging software installed.
maintainer: Carlos Alexandro Becker <carlos@becker.software>
license: MIT
vendor: GoReleaser
formats:
- apk
- deb
- rpm
bindir: /usr/bin
section: utils
contents:
- src: ./completions/nfpm.bash
dst: /usr/share/bash-completion/completions/nfpm
file_info:
mode: 0644
- src: ./completions/nfpm.fish
dst: /usr/share/fish/vendor_completions.d/nfpm.fish
file_info:
mode: 0644
- src: ./completions/nfpm.zsh
dst: /usr/share/zsh/vendor-completions/_nfpm
file_info:
mode: 0644
- src: ./manpages/nfpm.1.gz
dst: /usr/share/man/man1/nfpm.1.gz
file_info:
mode: 0644
- src: ./LICENSE.md
dst: /usr/share/doc/nfpm/copyright
file_info:
mode: 0644
- src: .lintian-overrides
dst: ./usr/share/lintian/overrides/nfpm
packager: deb
file_info:
mode: 0644
aurs:
- homepage: https://nfpm.goreleaser.com
description: nFPM is a simple, 0-dependencies, deb, rpm and apk packager.
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/nfpm-bin.git"
package: |-
# bin
install -Dm755 "./nfpm" "${pkgdir}/usr/bin/nfpm"
# license
install -Dm644 "./LICENSE.md" "${pkgdir}/usr/share/licenses/nfpm/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/nfpm.bash" "${pkgdir}/usr/share/bash-completion/completions/nfpm"
install -Dm644 "./completions/nfpm.zsh" "${pkgdir}/usr/share/zsh/site-functions/_nfpm"
install -Dm644 "./completions/nfpm.fish" "${pkgdir}/usr/share/fish/vendor_completions.d/nfpm.fish"
# man pages
install -Dm644 "./manpages/nfpm.1.gz" "${pkgdir}/usr/share/man/man1/nfpm.1.gz"
furies:
- account: goreleaser
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}"
- --yes
changelog:
sort: asc
use: github
filters:
exclude:
- "^test:"
- "^chore"
- "merge conflict"
- Merge pull request
- Merge remote-tracking branch
- Merge branch
- go mod tidy
groups:
- title: Dependency updates
regexp: '^.*?(feat|fix|chore)\(deps\)!?:.+$'
order: 300
- title: "New Features"
regexp: '^.*?feat(\([[:word:]]+\))??!?:.+$'
order: 100
- title: "Security updates"
regexp: '^.*?sec(\([[:word:]]+\))??!?:.+$'
order: 150
- title: "Bug fixes"
regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$'
order: 200
- title: "Documentation updates"
regexp: ^.*?doc(\([[:word:]]+\))??!?:.+$
order: 400
- title: "Build process updates"
regexp: ^.*?(build|ci)(\([[:word:]]+\))??!?:.+$
order: 400
- title: Other work
order: 9999
checksum:
name_template: "checksums.txt"
release:
footer: |
**Full Changelog**: https://github.com/goreleaser/nfpm/compare/{{ .PreviousTag }}...{{ .Tag }}
## Helping out
This release is only possible thanks to **all** the support of **awesome people**!
Want to be one of them?
You can [sponsor](https://goreleaser.com/sponsors/) or [contribute with code](https://goreleaser.com/contributing).
## Where to go next?
* nFPM is a satellite project from GoReleaser. [Check it out](https://goreleaser.com)!
* Find examples and commented usage of all options in our [website](https://nfpm.goreleaser.com/).
* 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>
milestones:
- close: true
announce:
twitter:
enabled: false
message_template: "nFPM {{ .Tag }} was just released! See what's new: https://github.com/goreleaser/nfpm/releases/tag/{{ .Tag }}"
discord:
enabled: true
message_template: "nFPM {{ .Tag }} is out! See what's new: https://github.com/goreleaser/nfpm/releases/tag/{{ .Tag }}"