github.com/goreleaser/nfpm/v2@v2.44.0/.goreleaser.yml (about)

     1  # yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json
     2  version: 2
     3  env:
     4    - GO111MODULE=on
     5  
     6  before:
     7    hooks:
     8      - go mod tidy
     9      - ./scripts/completions.sh
    10      - ./scripts/manpages.sh
    11  
    12  metadata:
    13    mod_timestamp: "{{ .CommitTimestamp }}"
    14    description: "nFPM is Not FPM - a simple deb, rpm, apk, ipk, and arch linux packager written in Go."
    15    full_description: |-
    16      Simple, 0-dependencies, deb, rpm, apk, ipk, and arch linux packager.
    17      nFPM (not FPM) is configurable via YAML and does not need any
    18      packaging software installed.
    19    homepage: https://nfpm.goreleaser.com
    20    license: MIT
    21    maintainers:
    22      - Carlos Alexandro Becker <carlos@becker.software>
    23  
    24  gomod:
    25    proxy: true
    26  
    27  builds:
    28    - main: ./cmd/nfpm
    29      env:
    30        - CGO_ENABLED=0
    31      goos:
    32        - linux
    33        - darwin
    34        - windows
    35      goarch:
    36        - amd64
    37        - arm64
    38        - ppc64le
    39        - s390x
    40      mod_timestamp: "{{ .CommitTimestamp }}"
    41      flags:
    42        - -trimpath
    43      ldflags:
    44        - -s -w -X main.version={{ .Version }} -X main.commit={{ .Commit }} -X main.date={{ .CommitDate }} -X main.builtBy=goreleaser -X main.treeState={{ .IsGitDirty }}
    45  
    46  dockers_v2:
    47    - images:
    48        - "goreleaser/nfpm"
    49        - "ghcr.io/goreleaser/nfpm"
    50      tags:
    51        - "{{ .Tag }}"
    52        - latest
    53      labels:
    54        "org.opencontainers.image.created": "{{.Date}}"
    55        "org.opencontainers.image.name": "{{.ProjectName}}"
    56        "org.opencontainers.image.revision": "{{.FullCommit}}"
    57        "org.opencontainers.image.version": "{{.Version}}"
    58        "org.opencontainers.image.source": "{{.GitURL}}"
    59  
    60  archives:
    61    - name_template: >-
    62        {{ .ProjectName }}_
    63        {{- .Version }}_
    64        {{- title .Os }}_
    65        {{- if eq .Arch "amd64" }}x86_64
    66        {{- else if eq .Arch "386" }}i386
    67        {{- else }}{{ .Arch }}{{ end }}
    68      format_overrides:
    69        - goos: windows
    70          format: zip
    71      files:
    72        - README.md
    73        - LICENSE.md
    74        - completions/*
    75        - manpages/*
    76  
    77  source:
    78    enabled: true
    79    name_template: "{{ .ProjectName }}_{{ .Version }}_source"
    80  
    81  brews:
    82    - repository:
    83        owner: goreleaser
    84        name: homebrew-tap
    85      directory: Formula
    86      test: |
    87        system "#{bin}/nfpm -v"
    88      install: |-
    89        bin.install "nfpm"
    90        bash_completion.install "completions/nfpm.bash" => "nfpm"
    91        zsh_completion.install "completions/nfpm.zsh" => "_nfpm"
    92        fish_completion.install "completions/nfpm.fish"
    93        man1.install "manpages/nfpm.1.gz"
    94  
    95  scoops:
    96    - repository:
    97        owner: goreleaser
    98        name: scoop-bucket
    99      directory: bucket
   100  
   101  nix:
   102    - name: nfpm
   103      repository:
   104        owner: goreleaser
   105        name: nur
   106      path: pkgs/nfpm/default.nix
   107      extra_install: |-
   108        installManPage ./manpages/nfpm.1.gz
   109        installShellCompletion ./completions/*
   110  
   111  winget:
   112    - name: nfpm
   113      license_url: https://github.com/goreleaser/nfpm/blob/main/LICENSE.md
   114      publisher: goreleaser
   115      copyright: Becker Software LTDA
   116      repository:
   117        owner: goreleaser
   118        name: winget-pkgs
   119        branch: "nfpm-{{.Version}}"
   120        pull_request:
   121          enabled: true
   122          draft: false
   123          check_boxes: true
   124          base:
   125            owner: microsoft
   126            name: winget-pkgs
   127            branch: master
   128  
   129  npms:
   130    - name: "@goreleaser/nfpm"
   131      repository: "git+https://github.com/goreleaser/nfpm.git"
   132      bugs: https://github.com/goreleaser/nfpm/issues
   133      homepage: https://nfpm.goreleaser.com
   134      access: public
   135      keywords:
   136        - packaging
   137        - rpm
   138        - deb
   139        - apk
   140        - archlinux
   141  
   142  nfpms:
   143    - file_name_template: "{{ .ConventionalFileName }}"
   144      vendor: GoReleaser
   145      formats:
   146        - apk
   147        - deb
   148        - rpm
   149      bindir: /usr/bin
   150      section: utils
   151      contents:
   152        - src: ./completions/nfpm.bash
   153          dst: /usr/share/bash-completion/completions/nfpm
   154          file_info:
   155            mode: 0644
   156        - src: ./completions/nfpm.fish
   157          dst: /usr/share/fish/vendor_completions.d/nfpm.fish
   158          file_info:
   159            mode: 0644
   160        - src: ./completions/nfpm.zsh
   161          dst: /usr/share/zsh/vendor-completions/_nfpm
   162          file_info:
   163            mode: 0644
   164        - src: ./manpages/nfpm.1.gz
   165          dst: /usr/share/man/man1/nfpm.1.gz
   166          file_info:
   167            mode: 0644
   168        - src: ./LICENSE.md
   169          dst: /usr/share/doc/nfpm/copyright
   170          file_info:
   171            mode: 0644
   172        - src: .lintian-overrides
   173          dst: ./usr/share/lintian/overrides/nfpm
   174          packager: deb
   175          file_info:
   176            mode: 0644
   177  
   178  aurs:
   179    - maintainers:
   180        - "Fernandez Ludovic <lfernandez dot dev at gmail dot com>"
   181        - "Carlos Alexandro Becker <carlos at becker dot software>"
   182      private_key: "{{ .Env.AUR_KEY }}"
   183      git_url: "ssh://aur@aur.archlinux.org/nfpm-bin.git"
   184      package: |-
   185        # bin
   186        install -Dm755 "./nfpm" "${pkgdir}/usr/bin/nfpm"
   187        # license
   188        install -Dm644 "./LICENSE.md" "${pkgdir}/usr/share/licenses/nfpm/LICENSE"
   189        # completions
   190        mkdir -p "${pkgdir}/usr/share/bash-completion/completions/"
   191        mkdir -p "${pkgdir}/usr/share/zsh/site-functions/"
   192        mkdir -p "${pkgdir}/usr/share/fish/vendor_completions.d/"
   193        install -Dm644 "./completions/nfpm.bash" "${pkgdir}/usr/share/bash-completion/completions/nfpm"
   194        install -Dm644 "./completions/nfpm.zsh" "${pkgdir}/usr/share/zsh/site-functions/_nfpm"
   195        install -Dm644 "./completions/nfpm.fish" "${pkgdir}/usr/share/fish/vendor_completions.d/nfpm.fish"
   196        # man pages
   197        install -Dm644 "./manpages/nfpm.1.gz" "${pkgdir}/usr/share/man/man1/nfpm.1.gz"
   198  
   199  aur_sources:
   200    - homepage: https://nfpm.goreleaser.com
   201      description: nFPM is a simple, 0-dependencies, deb, rpm and apk packager.
   202      maintainers:
   203        - "Fernandez Ludovic <lfernandez dot dev at gmail dot com>"
   204        - "Carlos Alexandro Becker <carlos at becker dot software>"
   205      license: MIT
   206      private_key: "{{ .Env.AUR_KEY }}"
   207      git_url: "ssh://aur@aur.archlinux.org/nfpm.git"
   208      build: |-
   209        export CGO_CPPFLAGS="${CPPFLAGS}"
   210        export CGO_CFLAGS="${CFLAGS}"
   211        export CGO_CXXFLAGS="${CXXFLAGS}"
   212        export CGO_LDFLAGS="${LDFLAGS}"
   213        export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw"
   214        go build -ldflags="-w -s -buildid='' -linkmode=external -X main.version=v${pkgver}" ./cmd/nfpm
   215  
   216        chmod +x "./${pkgname}"
   217      package: |-
   218        # Bin
   219        install -Dsm755 "./${pkgname}" "${pkgdir}/usr/bin/${pkgname}"
   220  
   221        # License
   222        install -Dm644 "./LICENSE.md" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
   223  
   224        # Completions
   225        mkdir -p "${pkgdir}/usr/share/bash-completion/completions/"
   226        mkdir -p "${pkgdir}/usr/share/zsh/site-functions/"
   227        mkdir -p "${pkgdir}/usr/share/fish/vendor_completions.d/"
   228        ./${pkgname} completion bash > "${pkgdir}/usr/share/bash-completion/completions/${pkgname}"
   229        ./${pkgname} completion zsh > "${pkgdir}/usr/share/zsh/site-functions/_${pkgname}"
   230        ./${pkgname} completion fish > "${pkgdir}/usr/share/fish/vendor_completions.d/${pkgname}.fish"
   231  
   232  furies:
   233    - account: goreleaser
   234  
   235  sboms:
   236    - artifacts: archive
   237  
   238  signs:
   239    - cmd: cosign
   240      signature: "${artifact}.sigstore.json"
   241      artifacts: checksum
   242      args:
   243        - sign-blob
   244        - "--bundle=${signature}"
   245        - "${artifact}"
   246        - --yes
   247  
   248  docker_signs:
   249    - cmd: cosign
   250      artifacts: manifests
   251      args:
   252        - "sign"
   253        - "${artifact}"
   254        - --yes
   255  
   256  changelog:
   257    sort: asc
   258    use: github
   259    filters:
   260      exclude:
   261        - "^test:"
   262        - "^chore"
   263        - "merge conflict"
   264        - Merge pull request
   265        - Merge remote-tracking branch
   266        - Merge branch
   267        - go mod tidy
   268    groups:
   269      - title: Dependency updates
   270        regexp: '^.*?(feat|fix|chore)\(deps\)!?:.+$'
   271        order: 300
   272      - title: "New Features"
   273        regexp: '^.*?feat(\([[:word:]]+\))??!?:.+$'
   274        order: 100
   275      - title: "Security updates"
   276        regexp: '^.*?sec(\([[:word:]]+\))??!?:.+$'
   277        order: 150
   278      - title: "Bug fixes"
   279        regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$'
   280        order: 200
   281      - title: "Documentation updates"
   282        regexp: ^.*?doc(\([[:word:]]+\))??!?:.+$
   283        order: 400
   284      - title: "Build process updates"
   285        regexp: ^.*?(build|ci)(\([[:word:]]+\))??!?:.+$
   286        order: 400
   287      - title: Other work
   288        order: 9999
   289  
   290  checksum:
   291    name_template: "checksums.txt"
   292  
   293  release:
   294    footer: |
   295      **Full Changelog**: https://github.com/goreleaser/nfpm/compare/{{ .PreviousTag }}...{{ .Tag }}
   296  
   297      ## Helping out
   298  
   299      This release is only possible thanks to **all** the support of **awesome people**!
   300  
   301      Want to be one of them?
   302      You can [sponsor](https://goreleaser.com/sponsors/) or [contribute with code](https://goreleaser.com/contributing).
   303  
   304      ## Where to go next?
   305  
   306      * nFPM is a satellite project from GoReleaser. [Check it out](https://goreleaser.com)!
   307      * Find examples and commented usage of all options in our [website](https://nfpm.goreleaser.com/).
   308      * Reach out on [Discord](https://discord.gg/RGEBtg8vQ6) and [Twitter](https://twitter.com/goreleaser)!
   309  
   310      <a href="https://goreleaser.com"><img src="https://raw.githubusercontent.com/goreleaser/artwork/master/opencollective-header.png" with="100%" alt="GoReleaser logo"></a>
   311  
   312  milestones:
   313    - close: true
   314  
   315  announce:
   316    twitter:
   317      enabled: false
   318      message_template: "nFPM {{ .Tag }} was just released! See what's new: https://github.com/goreleaser/nfpm/releases/tag/{{ .Tag }}"
   319    discord:
   320      enabled: true
   321      message_template: "nFPM {{ .Tag }} is out! See what's new: https://github.com/goreleaser/nfpm/releases/tag/{{ .Tag }}"