-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.goreleaser.yml
94 lines (80 loc) · 3.14 KB
/
.goreleaser.yml
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
# .goreleaser.yml
project_name: golang-api-template
env:
- GO111MODULE=on
before:
hooks:
- go mod download
- git checkout -- go.sum
builds:
# You can have multiple builds defined as a yaml list
-
# Binary name.
# Can be a path (e.g. `bin/app`) to wrap the binary in a directory.
# Default is the name of the project directory.
binary: golang-api-template-bin
# Custom environment variables to be set during the builds.
# Default is empty.
env:
- CGO_ENABLED=0
# Custom ldflags templates.
# Default is `-s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}} -X main.builtBy=goreleaser`.
ldflags:
- -s -w -X main.version={{.Version}} -X main.commit={{.FullCommit}} -X main.date={{.Date}} -X main.tag={{.Tag}} -X main.name={{.ProjectName}} -X main.environment=production
# GOOS list to build for.
# For more info refer to: https://golang.org/doc/install/source#environment
# Defaults are darwin and linux.
goos:
- linux
- darwin
# GOARCH to build for.
# For more info refer to: https://golang.org/doc/install/source#environment
# Defaults are 386, amd64 and arm64.
goarch:
- amd64
- arm64
checksum:
algorithm: sha256
release:
# If set to auto, will mark the release as not ready for production
# in case there is an indicator for this in the tag e.g. v1.0.0-rc1
# If set to true, will mark the release as not ready for production.
# Default is false.
prerelease: auto
# You can change the name of the release.
# Default is `{{.Tag}}` on OSS and `{{.PrefixedTag}}` on Pro.
name_template: "{{.Tag}}"
dockers:
- image_templates: ["ghcr.io/charmixer/{{.ProjectName}}:{{ .Version }}-linux-arm64"]
use: buildx
goarch: arm64
dockerfile: .docker/Dockerfile.goreleaser
build_flag_templates: ["--platform=linux/arm64/v8"]
skip_push: auto
- image_templates: ["ghcr.io/charmixer/{{.ProjectName}}:{{ .Version }}-linux-amd64"]
use: buildx
goarch: amd64
dockerfile: .docker/Dockerfile.goreleaser
build_flag_templates: ["--platform=linux/amd64"]
skip_push: auto
docker_manifests:
- name_template: ghcr.io/charmixer/{{.ProjectName}}:v{{ .Major }}
image_templates:
- ghcr.io/charmixer/{{.ProjectName}}:{{ .Version }}-linux-arm64
- ghcr.io/charmixer/{{.ProjectName}}:{{ .Version }}-linux-amd64
skip_push: auto
- name_template: ghcr.io/charmixer/{{.ProjectName}}:v{{ .Major }}.{{ .Minor }}
image_templates:
- ghcr.io/charmixer/{{.ProjectName}}:{{ .Version }}-linux-arm64
- ghcr.io/charmixer/{{.ProjectName}}:{{ .Version }}-linux-amd64
skip_push: auto
- name_template: ghcr.io/charmixer/{{.ProjectName}}:v{{ .Major }}.{{ .Minor }}.{{ .Patch }}
image_templates:
- ghcr.io/charmixer/{{.ProjectName}}:{{ .Version }}-linux-arm64
- ghcr.io/charmixer/{{.ProjectName}}:{{ .Version }}-linux-amd64
skip_push: auto
- name_template: ghcr.io/charmixer/{{.ProjectName}}:latest
image_templates:
- ghcr.io/charmixer/{{.ProjectName}}:{{ .Version }}-linux-arm64
- ghcr.io/charmixer/{{.ProjectName}}:{{ .Version }}-linux-amd64
skip_push: auto