-
Notifications
You must be signed in to change notification settings - Fork 58
/
.goreleaser.yml
119 lines (105 loc) · 3.61 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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
version: 2
env:
- GO111MODULE=on
- CGO_ENABLED=0
builds:
- binary: calert.bin
id: calert
goos:
- windows
- darwin
- linux
goarch:
- amd64
- arm64
ldflags:
- -s -w -X "main.buildString={{ .Tag }} ({{ .ShortCommit }} {{ .Date }})"
dir: ./cmd/
archives:
- format: tar.gz
files:
- README.md
- LICENSE
- config.sample.toml
- static/
dockers:
- # ID of the image, needed if you want to filter by it later on (e.g. on custom publishers).
id: calert-amd64
# GOOS of the built binaries/packages that should be used.
goos: linux
# GOARCH of the built binaries/packages that should be used.
goarch: amd64
# IDs to filter the binaries/packages.
ids:
- calert
# Templates of the Docker image names.
image_templates:
- "ghcr.io/mr-karan/calert:{{ .Tag }}-amd64"
- "ghcr.io/mr-karan/calert:latest-amd64"
# Skips the docker push.
# Could be useful if you also do draft releases.
#
# If set to auto, the release will not be pushed to the Docker repository
# in case there is an indicator of a prerelease in the tag, e.g. v1.0.0-rc1.
#
# Defaults to false.
skip_push: false
# Path to the Dockerfile (from the project root).
dockerfile: Dockerfile
# Set the "backend" for the Docker pipe.
# Valid options are: docker, buildx, podman, buildpacks
# podman is a GoReleaser Pro feature and is only available on Linux.
# Defaults to docker.
use: docker
# Template of the docker build flags.
build_flag_templates:
- "--pull"
- "--label=org.opencontainers.image.created={{.Date}}"
- "--label=org.opencontainers.image.title={{.ProjectName}}"
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
- "--label=org.opencontainers.image.version={{.Version}}"
- "--platform=linux/amd64"
# If your Dockerfile copies files other than binaries and packages,
# you should list them here as well.
# Note that GoReleaser will create the same structure inside a temporary
# folder, so if you add `foo/bar.json` here, on your Dockerfile you can
# `COPY foo/bar.json /whatever.json`.
# Also note that the paths here are relative to the folder in which
# GoReleaser is being run (usually the repository root folder).
# This field does not support wildcards, you can add an entire folder here
# and use wildcards when you `COPY`/`ADD` in your Dockerfile.
extra_files:
- config.sample.toml
- static/
- # Make an additional template for arm64
id: calert-arm64
goos: linux
goarch: arm64
ids:
- calert
image_templates:
- "ghcr.io/mr-karan/calert:{{ .Tag }}-arm64"
- "ghcr.io/mr-karan/calert:latest-arm64"
skip_push: false
dockerfile: Dockerfile
use: docker
build_flag_templates:
- "--pull"
- "--label=org.opencontainers.image.created={{.Date}}"
- "--label=org.opencontainers.image.title={{.ProjectName}}"
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
- "--label=org.opencontainers.image.version={{.Version}}"
- "--platform=linux/arm64"
extra_files:
- config.sample.toml
- static/
# Make a manifest with both architectures
docker_manifests:
- name_template: "ghcr.io/mr-karan/calert:{{ .Tag }}"
image_templates:
- "ghcr.io/mr-karan/calert:{{ .Tag }}-amd64"
- "ghcr.io/mr-karan/calert:{{ .Tag }}-arm64"
- name_template: "ghcr.io/mr-karan/calert:latest"
image_templates:
- "ghcr.io/mr-karan/calert:{{ .Tag }}-amd64"
- "ghcr.io/mr-karan/calert:{{ .Tag }}-arm64"