# GoReleaser configuration for Strix
version: 2

before:
  hooks:
    - go mod tidy
    - go mod download

builds:
  - id: strix
    main: ./cmd/strix/main.go
    binary: strix
    env:
      - CGO_ENABLED=0
    goos:
      - linux
      - windows
      - darwin
    goarch:
      - amd64
      - arm64
      - arm
    goarm:
      - "7"
    ignore:
      - goos: windows
        goarch: arm
      - goos: darwin
        goarch: arm
    ldflags:
      - -s -w
      - -X main.Version={{.Version}}
      - -X main.BuildDate={{.Date}}
      - -X main.GitCommit={{.ShortCommit}}

archives:
  - id: strix-archive
    format: tar.gz
    name_template: >-
      {{ .ProjectName }}_
      {{- .Version }}_
      {{- .Os }}_
      {{- if eq .Arch "amd64" }}x86_64
      {{- else if eq .Arch "386" }}i386
      {{- else }}{{ .Arch }}{{ end }}
      {{- if .Arm }}v{{ .Arm }}{{ end }}
    format_overrides:
      - goos: windows
        format: zip
    files:
      - README.md
      - LICENSE
      - webui/**/*
      - cameras/**/*

checksum:
  name_template: 'checksums.txt'
  algorithm: sha256

changelog:
  sort: asc
  use: github
  filters:
    exclude:
      - '^docs:'
      - '^test:'
      - '^chore:'
      - typo
  groups:
    - title: '🚀 Features'
      regexp: '^.*?feat(\([[:word:]]+\))??!?:.+$'
      order: 0
    - title: '🐛 Bug Fixes'
      regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$'
      order: 1
    - title: '📝 Documentation'
      regexp: '^.*?docs(\([[:word:]]+\))??!?:.+$'
      order: 2
    - title: '🔧 Other'
      order: 999

release:
  github:
    owner: eduard256
    name: Strix
  draft: false
  prerelease: auto
  name_template: "v{{.Version}}"
  header: |
    ## 🦉 Strix v{{.Version}}

    Smart IP Camera Stream Discovery System

    ### Installation

    Download the appropriate binary for your platform below and extract it.

    ### Usage

    ```bash
    ./strix
    ```

    Then open http://localhost:4567 in your browser.

  footer: |
    **Full Changelog**: https://github.com/eduard256/Strix/compare/{{ .PreviousTag }}...{{ .Tag }}

snapshot:
  name_template: "{{ incpatch .Version }}-next"

dist: dist
