|
1 | | -# This is an example .goreleaser.yml file with some sensible defaults. |
2 | | -# Make sure to check the documentation at https://goreleaser.com |
| 1 | +# Visit https://goreleaser.com for documentation on how to customize this |
| 2 | +# behavior. |
3 | 3 | before: |
4 | 4 | hooks: |
5 | | - # You may remove this if you don't use go modules. |
| 5 | + # this is just an example and not a requirement for provider building/publishing |
6 | 6 | - go mod tidy |
7 | | - # you may remove this if you don't need go generate |
8 | | - - go generate ./... |
9 | 7 | builds: |
10 | | - - env: |
11 | | - - CGO_ENABLED=0 |
12 | | - goos: |
13 | | - - linux |
14 | | - - windows |
15 | | - - darwin |
16 | | - |
| 8 | +- env: |
| 9 | + # goreleaser does not work with CGO, it could also complicate |
| 10 | + # usage by users in CI/CD systems like Terraform Cloud where |
| 11 | + # they are unable to install libraries. |
| 12 | + - CGO_ENABLED=0 |
| 13 | + mod_timestamp: '{{ .CommitTimestamp }}' |
| 14 | + flags: |
| 15 | + - -trimpath |
| 16 | + ldflags: |
| 17 | + - '-s -w -X main.version={{.Version}} -X main.commit={{.Commit}}' |
| 18 | + goos: |
| 19 | + - freebsd |
| 20 | + - windows |
| 21 | + - linux |
| 22 | + - darwin |
| 23 | + goarch: |
| 24 | + - amd64 |
| 25 | + - '386' |
| 26 | + - arm |
| 27 | + - arm64 |
| 28 | + ignore: |
| 29 | + - goos: darwin |
| 30 | + goarch: '386' |
| 31 | + binary: '{{ .ProjectName }}_v{{ .Version }}' |
17 | 32 | archives: |
18 | | - - format: tar.gz |
19 | | - # this name template makes the OS and Arch compatible with the results of uname. |
20 | | - name_template: >- |
21 | | - {{ .ProjectName }}_ |
22 | | - {{- title .Os }}_ |
23 | | - {{- if eq .Arch "amd64" }}x86_64 |
24 | | - {{- else if eq .Arch "386" }}i386 |
25 | | - {{- else }}{{ .Arch }}{{ end }} |
26 | | - {{- if .Arm }}v{{ .Arm }}{{ end }} |
27 | | - # use zip for windows archives |
28 | | - format_overrides: |
29 | | - - goos: windows |
30 | | - format: zip |
| 33 | +- format: zip |
| 34 | + name_template: '{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}' |
31 | 35 | checksum: |
32 | | - name_template: 'checksums.txt' |
33 | | -snapshot: |
34 | | - name_template: "{{ incpatch .Version }}-next" |
| 36 | + name_template: '{{ .ProjectName }}_{{ .Version }}_SHA256SUMS' |
| 37 | + algorithm: sha256 |
| 38 | +signs: |
| 39 | + - artifacts: checksum |
| 40 | + args: |
| 41 | + # if you are using this is a GitHub action or some other automated pipeline, you |
| 42 | + # need to pass the batch flag to indicate its not interactive. |
| 43 | + - "--batch" |
| 44 | + - "--local-user" |
| 45 | + - "{{ .Env.GPG_FINGERPRINT }}" # set this environment variable for your signing key |
| 46 | + - "--output" |
| 47 | + - "${signature}" |
| 48 | + - "--detach-sign" |
| 49 | + - "${artifact}" |
| 50 | +release: |
| 51 | + # Visit your project's GitHub Releases page to publish this release. |
| 52 | + draft: true |
35 | 53 | changelog: |
36 | | - sort: asc |
37 | 54 | filters: |
38 | 55 | exclude: |
39 | | - - '^docs:' |
40 | | - - '^test:' |
41 | | - |
42 | | -# The lines beneath this are called `modelines`. See `:help modeline` |
43 | | -# Feel free to remove those if you don't want/use them. |
44 | | -# yaml-language-server: $schema=https://goreleaser.com/static/schema.json |
45 | | -# vim: set ts=2 sw=2 tw=0 fo=cnqoj |
| 56 | + - '^docs:' |
| 57 | + - '^test:' |
| 58 | + - Merge pull request |
| 59 | + - Merge branch |
| 60 | + - go mod tidy |
0 commit comments