project_name: nats-server
version: 2

release:
  github:
    owner: '{{ envOrDefault "GITHUB_REPOSITORY_OWNER" "nats-io" }}'
    name: nats-server
  name_template: "Release {{.Tag}}"
  draft: true

changelog:
  disable: true

builds:
  - main: .
    binary: nats-server
    flags:
      - -trimpath
    ldflags:
      - -w -X 'github.com/nats-io/nats-server/v2/server.gitCommit={{.ShortCommit}}' -X 'github.com/nats-io/nats-server/v2/server.serverVersion={{.Tag}}'
    env:
      # This is the toolchain version we use for releases. To override, set the env var, e.g.:
      # GORELEASER_TOOLCHAIN="go1.22.8" TARGET='linux_amd64' goreleaser build --snapshot --clean --single-target
      - GOTOOLCHAIN={{ envOrDefault "GORELEASER_TOOLCHAIN" "go1.24.0" }}
      - GO111MODULE=on
      - CGO_ENABLED=0
    goos:
      - darwin
      - linux
      - windows
      - freebsd
    goarch:
      - amd64
      - arm
      - arm64
      - 386
      - mips64le
      - s390x
      - ppc64le
    goarm:
      - 6
      - 7
    ignore:
      - goos: darwin
        goarch: 386
      - goos: freebsd
        goarch: arm
      - goos: freebsd
        goarch: arm64
      - goos: freebsd
        goarch: 386
    mod_timestamp: "{{ .CommitTimestamp }}"

nfpms:
  - file_name_template: "{{.ProjectName}}-{{.Tag}}-{{.Arch}}{{if .Arm}}{{.Arm}}{{end}}"
    homepage: https://nats.io
    description: High-Performance server for NATS, the cloud native messaging system.
    maintainer: Ivan Kozlovic <ivan@synadia.com>
    license: Apache 2.0
    vendor: Synadia Inc.
    formats:
      - deb
      - rpm
    mtime: "{{ .CommitDate }}"
    contents:
      - src: /usr/bin/nats-server
        dst: /usr/local/bin/nats-server
        type: "symlink"

archives:
  - name_template: "{{.ProjectName}}-{{.Tag}}-{{.Os}}-{{.Arch}}{{if .Arm}}{{.Arm}}{{end}}"
    id: targz-archives
    wrap_in_directory: true
    formats: ["tar.gz"]
    format_overrides:
      - goos: windows
        formats: ["zip"]
    files:
      - README.md
      - LICENSE

checksum:
  name_template: "SHA256SUMS"
  algorithm: sha256

sboms:
  - artifacts: binary
    documents:
      [
        "{{.ProjectName}}-{{.Tag}}-{{.Os}}-{{.Arch}}{{if .Arm}}{{.Arm}}{{end}}.sbom.spdx.json",
      ]