# GoReleaser config
project_name: navidrome
version: 2

builds:
  - id: navidrome_linux_amd64
    env:
      - CGO_ENABLED=1
    goos:
      - linux
    goarch:
      - amd64
    flags:
      - -tags=netgo
    ldflags:
      - "-extldflags '-static -lz'"
      - -s -w -X github.com/navidrome/navidrome/consts.gitSha={{.ShortCommit}} -X github.com/navidrome/navidrome/consts.gitTag={{.Version}}

  - id: navidrome_linux_386
    env:
      - CGO_ENABLED=1
      - PKG_CONFIG_PATH=/i386/lib/pkgconfig
    goos:
      - linux
    goarch:
      - "386"
    flags:
      - -tags=netgo
    ldflags:
      - "-extldflags '-static'"
      - -s -w -X github.com/navidrome/navidrome/consts.gitSha={{.ShortCommit}} -X github.com/navidrome/navidrome/consts.gitTag={{.Version}}

  - id: navidrome_linux_arm
    env:
      - CGO_ENABLED=1
      - CC=arm-linux-gnueabi-gcc
      - CXX=arm-linux-gnueabi-g++
      - PKG_CONFIG_PATH=/arm/lib/pkgconfig
    goos:
      - linux
    goarch:
      - arm
    goarm:
      - "5"
      - "6"
      - "7"
    flags:
      - -tags=netgo
    ldflags:
      - "-extldflags '-static'"
      - -s -w -X github.com/navidrome/navidrome/consts.gitSha={{.ShortCommit}} -X github.com/navidrome/navidrome/consts.gitTag={{.Version}}

  - id: navidrome_linux_arm64
    env:
      - CGO_ENABLED=1
      - CC=aarch64-linux-gnu-gcc
      - CXX=aarch64-linux-gnu-g++
      - PKG_CONFIG_PATH=/arm64/lib/pkgconfig
    goos:
      - linux
    goarch:
      - arm64
    flags:
      - -tags=netgo
    ldflags:
      - "-extldflags '-static'"
      - -s -w -X github.com/navidrome/navidrome/consts.gitSha={{.ShortCommit}} -X github.com/navidrome/navidrome/consts.gitTag={{.Version}}

  - id: navidrome_windows_386
    env:
      - CGO_ENABLED=1
      - CC=i686-w64-mingw32-gcc
      - CXX=i686-w64-mingw32-g++
      - PKG_CONFIG_PATH=/mingw32/lib/pkgconfig
    goos:
      - windows
    goarch:
      - "386"
    flags:
      - -tags=netgo
    ldflags:
      - "-extldflags '-static'"
      - -s -w -X github.com/navidrome/navidrome/consts.gitSha={{.ShortCommit}} -X github.com/navidrome/navidrome/consts.gitTag={{.Version}}

  - id: navidrome_windows_amd64
    env:
      - CGO_ENABLED=1
      - CC=x86_64-w64-mingw32-gcc
      - CXX=x86_64-w64-mingw32-g++
      - PKG_CONFIG_PATH=/mingw64/lib/pkgconfig
    goos:
      - windows
    goarch:
      - amd64
    flags:
      - -tags=netgo
    ldflags:
      - "-extldflags '-static'"
      - -s -w -X github.com/navidrome/navidrome/consts.gitSha={{.ShortCommit}} -X github.com/navidrome/navidrome/consts.gitTag={{.Version}}

  - id: navidrome_darwin_amd64
    env:
      - CGO_ENABLED=1
      - CC=o64-clang
      - CXX=o64-clang++
      - PKG_CONFIG_PATH=/darwin/lib/pkgconfig
    goos:
      - darwin
    goarch:
      - amd64
    flags:
      - -tags=netgo
    ldflags:
      - -s -w -X github.com/navidrome/navidrome/consts.gitSha={{.ShortCommit}} -X github.com/navidrome/navidrome/consts.gitTag={{.Version}}

archives:
  - format_overrides:
      - goos: windows
        format: zip

checksum:
  name_template: "{{ .ProjectName }}_checksums.txt"

snapshot:
  version_template: "{{ .Tag }}-SNAPSHOT"

release:
  draft: true
  mode: append
  footer: |
    **Full Changelog**: https://github.com/navidrome/navidrome/compare/{{ .PreviousTag }}...{{ .Tag }}

    ## Helping out

    This release is only possible thanks to the support of some **awesome people**!

    Want to be one of them?
    You can [sponsor](https://github.com/sponsors/deluan), pay me a [Ko-fi](https://ko-fi.com/deluan) or [contribute with code](https://www.navidrome.org/docs/developers/).

    ## Where to go next?

    * Read installation instructions on our [website](https://www.navidrome.org/docs/installation/).
    * Reach out on [Discord](https://discord.gg/xh7j7yF), [Reddit](https://www.reddit.com/r/navidrome/) and [Twitter](https://twitter.com/navidrome)!

changelog:
  sort: asc
  use: github
  filters:
    exclude:
      - "^test:"
      - Merge pull request
      - Merge remote-tracking branch
      - Merge branch
      - go mod tidy
  groups:
    - 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
