# This is an example .goreleaser.yml file with some sane defaults.
# Make sure to check the documentation at http://goreleaser.com
before:
  hooks:
    - go mod tidy
builds:
  - id: darwin-amd64
    main: ./cmd/headscale/headscale.go
    mod_timestamp: "{{ .CommitTimestamp }}"
    goos:
      - darwin
    goarch:
      - amd64
    env:
      - PKG_CONFIG_SYSROOT_DIR=/sysroot/macos/amd64
      - PKG_CONFIG_PATH=/sysroot/macos/amd64/usr/local/lib/pkgconfig
      - CC=o64-clang
      - CXX=o64-clang++
    flags:
      - -mod=readonly
    ldflags:
      - -s -w -X github.com/juanfont/headscale/cmd/headscale/cli.Version=v{{.Version}}

  - id: linux-armhf
    main: ./cmd/headscale/headscale.go
    mod_timestamp: "{{ .CommitTimestamp }}"
    goos:
      - linux
    goarch:
      - arm
    goarm:
      - 7
    env:
      - CC=arm-linux-gnueabihf-gcc
      - CXX=arm-linux-gnueabihf-g++
      - CGO_FLAGS=--sysroot=/sysroot/linux/armhf
      - CGO_LDFLAGS=--sysroot=/sysroot/linux/armhf
      - PKG_CONFIG_SYSROOT_DIR=/sysroot/linux/armhf
      - PKG_CONFIG_PATH=/sysroot/linux/armhf/opt/vc/lib/pkgconfig:/sysroot/linux/armhf/usr/lib/arm-linux-gnueabihf/pkgconfig:/sysroot/linux/armhf/usr/lib/pkgconfig:/sysroot/linux/armhf/usr/local/lib/pkgconfig
    flags:
      - -mod=readonly
    ldflags:
      - -s -w -X github.com/juanfont/headscale/cmd/headscale/cli.Version=v{{.Version}}

  - id: linux-amd64
    env:
      - CGO_ENABLED=1
    goos:
      - linux
    goarch:
      - amd64
    main: ./cmd/headscale/headscale.go
    mod_timestamp: "{{ .CommitTimestamp }}"
    ldflags:
      - -s -w -X github.com/juanfont/headscale/cmd/headscale/cli.Version=v{{.Version}}

  - id: linux-arm64
    goos:
      - linux
    goarch:
      - arm64
    env:
      - CGO_ENABLED=1
      - CC=aarch64-linux-gnu-gcc
    main: ./cmd/headscale/headscale.go
    mod_timestamp: "{{ .CommitTimestamp }}"
    ldflags:
      - -s -w -X github.com/juanfont/headscale/cmd/headscale/cli.Version=v{{.Version}}

archives:
  - id: golang-cross
    builds:
      - darwin-amd64
      - linux-armhf
      - linux-amd64
      - linux-arm64
    name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
    format: binary

checksum:
  name_template: "checksums.txt"
snapshot:
  name_template: "{{ .Tag }}-next"
changelog:
  sort: asc
  filters:
    exclude:
      - "^docs:"
      - "^test:"