summaryrefslogtreecommitdiff
path: root/.goreleaser.yaml
blob: 3e6994762ff5b1da48dc4f7765d301e3056b1831 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
---
# This is an example .goreleaser.yml file with some sensible defaults.
# Make sure to check the documentation at https://goreleaser.com

# The lines below are called `modelines`. See `:help modeline`
# Feel free to remove those if you don't want/need to use them.
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
# vim: set ts=2 sw=2 tw=0 fo=cnqoj
version: 2
before:
  hooks: [go mod tidy, go generate ./..., 'echo building {{.Version}}']
upx:
  # Whether to enable it or not.
  - enabled: true
  # Filter by GOOS.
    goos: [linux, windows, darwin]
  # Filter by GOARCH.
    goarch: [arm, amd64, i386, arm64, aarch64]
  # Compress argument.
  # Valid options are from '1' (faster) to '9' (better), and 'best'.
    compress: best
  # Whether to try LZMA (slower).
    lzma: false
builds:
  - main:
    env: [CGO_ENABLED=0]
    ldflags: -s -w -X main.version={{.Version}}
    goos: [linux, windows, darwin]
archives:
  - formats: tar.gz
    files:
      - LICENSE
      - src: ./internal/documentation/*.1
        strip_parent: true
    # this name template makes the OS and Arch compatible with the results of `uname`.
    name_template: >-
      {{ .ProjectName }}_
      {{- title .Os }}_
      {{- if eq .Arch "amd64" }}x86_64
      {{- else if eq .Arch "386" }}i386
      {{- else }}{{ .Arch }}{{ end }}
      {{- if .Arm }}v{{ .Arm }}{{ end }}
    # use zip for windows archives
    format_overrides:
      - goos: windows
        formats: zip
changelog:
  sort: asc
  filters:
    exclude: ['^docs:', '^test:']