-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy path.goreleaser.yaml
More file actions
140 lines (127 loc) · 3.71 KB
/
Copy path.goreleaser.yaml
File metadata and controls
140 lines (127 loc) · 3.71 KB
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
version: 2
before:
hooks:
- task install-deps docs mocks
- go mod tidy
builds:
- id: argo-watcher
main: ./cmd/argo-watcher
binary: argo-watcher
env:
- CGO_ENABLED=0
ldflags:
- -s -w -X github.com/shini4i/argo-watcher/internal/server.version={{.Version}}
goos:
- linux
goarch:
- amd64
- arm64
- id: client
main: ./cmd/client
binary: client
env:
- CGO_ENABLED=0
ldflags:
- -s -w
goos:
- linux
goarch:
- amd64
- arm64
# dockers_v2 builds a multi-arch manifest per image in a single `docker buildx
# build --push`, and attaches an SBOM to each. OCI metadata is set via
# `annotations` (not `--label`) so it lands on the manifest index that GHCR
# reads for multi-arch images.
dockers_v2:
# Server image
- id: argo-watcher
ids:
- argo-watcher
dockerfile: Dockerfile.server
images:
- 'ghcr.io/shini4i/argo-watcher'
tags:
- '{{ .Tag }}'
platforms:
- linux/amd64
- linux/arm64
extra_files:
- web/dist
- db/migrations
flags:
- "--pull"
# Attach an SBOM to the image. This is the dockers_v2 default, set
# explicitly since dockers_v2 is still experimental and defaults may shift.
sbom: "true"
annotations:
org.opencontainers.image.created: "{{.Date}}"
org.opencontainers.image.title: argo-watcher
org.opencontainers.image.description: "A feedback loop for your GitOps workflow, bridging CI pipelines and Argo CD."
org.opencontainers.image.revision: "{{.FullCommit}}"
org.opencontainers.image.version: "{{.Version}}"
org.opencontainers.image.source: "{{.GitURL}}"
org.opencontainers.image.licenses: Apache-2.0
# Client image
- id: client
ids:
- client
dockerfile: Dockerfile.client
images:
- 'ghcr.io/shini4i/argo-watcher-client'
tags:
- '{{ .Tag }}'
platforms:
- linux/amd64
- linux/arm64
flags:
- "--pull"
# Attach an SBOM to the image. This is the dockers_v2 default, set
# explicitly since dockers_v2 is still experimental and defaults may shift.
sbom: "true"
annotations:
org.opencontainers.image.created: "{{.Date}}"
org.opencontainers.image.title: argo-watcher-client
org.opencontainers.image.description: "CLI client for Argo Watcher, used from CI pipelines to track Argo CD rollouts."
org.opencontainers.image.revision: "{{.FullCommit}}"
org.opencontainers.image.version: "{{.Version}}"
org.opencontainers.image.source: "{{.GitURL}}"
org.opencontainers.image.licenses: Apache-2.0
archives:
- formats: ['tar.gz']
name_template: "{{ .ProjectName }}_{{ .Tag }}_{{ .Os }}_{{ .Arch }}"
sboms:
- artifacts: archive
signs:
- cmd: cosign
# cosign v3 defaults to the new bundle format: the separate .sig/.pem
# outputs are gone, replaced by a single .sigstore.json bundle written via
# --bundle. Verify with: cosign verify-blob --bundle checksums.txt.sigstore.json checksums.txt
signature: "${artifact}.sigstore.json"
output: true
artifacts: checksum
args:
- "sign-blob"
- "--bundle=${signature}"
- "${artifact}"
- "--yes"
docker_signs:
- cmd: cosign
# Empty string selects the images built by dockers_v2 (which publishes a
# multi-arch manifest per image, not separate `manifests` artifacts).
artifacts: ""
args:
- "sign"
- "${artifact}@${digest}"
- "--yes"
checksum:
name_template: 'checksums.txt'
changelog:
use:
github-native
release:
prerelease: auto
draft: false
footer: |
## Docker Images
- `ghcr.io/shini4i/argo-watcher:{{ .Tag }}`
- `ghcr.io/shini4i/argo-watcher-client:{{ .Tag }}`