-
Notifications
You must be signed in to change notification settings - Fork 0
/
.goreleaser.yaml
104 lines (92 loc) · 3.12 KB
/
.goreleaser.yaml
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# 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: 1
project_name: kc-tpr
# before:
# hooks:
# # You may remove this if you don't use go modules.
# - go mod tidy
# # you may remove this if you don't need go generate
# - go generate ./...
builds:
- id: cli
binary: kc-tpr
main: ./cli
env:
- CGO_ENABLED=0
ldflags:
- -s -w -X main.name={{.ProjectName}} -X main.version={{.Version}} -X main.date={{.Date}}
targets:
- go_first_class # Go first-class ports
- linux_amd64_v1 # Normal linux machine
- linux_arm64 # Raspberry Pi 4
- windows_amd64_v1 # Normal windows machine
- windows_arm64 # Normal windows machine
- darwin_amd64_v1 # Intell Macbook/iMac
- darwin_arm64 # M1/M2 Macbook/iMac
archives:
- id: cli
format: binary
dockers:
- id: cli-amd64
goos: linux
goarch: amd64
dockerfile: cli/Dockerfile
use: buildx
image_templates:
- "ghcr.io/kamontat/{{ .ProjectName }}:amd64"
- "ghcr.io/kamontat/{{ .ProjectName }}:{{ .Tag }}-amd64"
build_flag_templates:
- "--pull"
- "--label=org.opencontainers.image.title={{ .ProjectName }}"
- "--label=org.opencontainers.image.created={{ .Date }}"
- "--label=org.opencontainers.image.revision={{ .FullCommit }}"
- "--label=org.opencontainers.image.version={{ .Version }}"
- "--label=org.opencontainers.image.tag={{ .Tag }}"
- "--platform=linux/amd64"
- id: cli-arm64
goos: linux
goarch: arm64
dockerfile: cli/Dockerfile
use: buildx
image_templates:
- "ghcr.io/kamontat/{{ .ProjectName }}:arm64"
- "ghcr.io/kamontat/{{ .ProjectName }}:{{ .Tag }}-arm64"
build_flag_templates:
- "--pull"
- "--label=org.opencontainers.image.title={{ .ProjectName }}"
- "--label=org.opencontainers.image.created={{ .Date }}"
- "--label=org.opencontainers.image.revision={{ .FullCommit }}"
- "--label=org.opencontainers.image.version={{ .Version }}"
- "--label=org.opencontainers.image.tag={{ .Tag }}"
- "--platform=linux/arm64"
docker_manifests:
- id: cli-version
name_template: ghcr.io/kamontat/{{ .ProjectName }}:{{ .Tag }}
image_templates:
- ghcr.io/kamontat/{{ .ProjectName }}:{{ .Tag }}-amd64
- ghcr.io/kamontat/{{ .ProjectName }}:{{ .Tag }}-arm64
- id: cli-latest
name_template: ghcr.io/kamontat/{{ .ProjectName }}:latest
image_templates:
- ghcr.io/kamontat/{{ .ProjectName }}:amd64
- ghcr.io/kamontat/{{ .ProjectName }}:arm64
checksum:
name_template: "checksums_{{ .Version }}.txt"
algorithm: sha256
snapshot:
name_template: "{{ .Version }}-SNAPSHOT-{{ .ShortCommit }}"
release:
draft: false
name_template: "{{ .Tag }}"
changelog:
sort: asc
filters:
exclude:
- "^docs:"
- "^test:"
- "^chore:"