# When adding options check the documentation at https://goreleaser.com
before:
  hooks:
    - go mod tidy
builds:
  - env:
      - CGO_ENABLED=0
    goos:
      - linux
      - darwin
    goarch:
      - amd64
      - arm64
    main: ./otto
    id: otto
    binary: otto
universal_binaries:
  - replace: true
    id: otto
checksum:
  name_template: 'checksums.txt'
snapshot:
  name_template: "{{ incpatch .Version }}-next"
archives:
  - id: otto
    name_template: "{{ .Binary }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}"
release:
  header: |
    <a name="{{.Tag}}"></a>
    ### {{.Tag}} Release Notes ({{.Date}})
  footer: |
    [Full Changelog](https://{{ .ModulePath }}/compare/{{ .PreviousTag }}...{{ .Tag }})
changelog:
  use: github
  sort: asc
  filters:
    exclude:
    - Merge pull request
    - Merge remote-tracking branch
    - Merge branch

  # Group commits messages by given regex and title.
  # Order value defines the order of the groups.
  # Proving no regex means all commits will be grouped under the default group.
  # Groups are disabled when using github-native, as it already groups things by itself.
  # Matches are performed against strings of the form: "<abbrev-commit> <title-commit>".
  # Regex use RE2 syntax as defined here: https://github.com/google/re2/wiki/Syntax.
  #
  # Default is no groups.
  groups:
    - title: Features
      regexp: '^.*?(feat|feature)(\([[:word:]]+\))??!?:.+$'
      order: 0
    - title: 'Bug fixes'
      regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$'
      order: 1
    - title: 'Chores'
      regexp: '^.*?chore(\([[:word:]]+\))??!?:.+$'
      order: 2
    - title: 'Quality'
      regexp: '^.*?(qa|test|tests)(\([[:word:]]+\))??!?:.+$'
      order: 3
    - title: 'Documentation'
      regexp: '^.*?(doc|docs)(\([[:word:]]+\))??!?:.+$'
      order: 4
    - title: 'Continuous Integration'
      regexp: '^.*?ci(\([[:word:]]+\))??!?:.+$'
      order: 5
    - title: Other
      order: 999
