Skip to content

Commit 4a9b655

Browse files
committed
Add HSM build to release workflow
Signed-off-by: Alexander Scheel <ascheel@gitlab.com>
1 parent 1f41563 commit 4a9b655

File tree

3 files changed

+238
-37
lines changed

3 files changed

+238
-37
lines changed

.github/workflows/release.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ jobs:
4141
matrix:
4242
release_os:
4343
- linux
44+
- hsm
4445
- darwin
4546
- freebsd
4647
- illumos
@@ -180,9 +181,12 @@ jobs:
180181
- name: "Template GoRelaser configuration"
181182
if: startsWith(github.ref, 'refs/tags/') || inputs.nightly
182183
run: |
183-
sed "s/REPLACE_WITH_RELEASE_GOOS/${{ matrix.release_os }}/g" .goreleaser-template.yaml > .goreleaser.yaml
184-
sed -i "s/^#OTHERARCH#//g" .goreleaser.yaml
184+
[ "${{ matrix.release_os }}" != "hsm" ] && sed "s/REPLACE_WITH_RELEASE_GOOS/${{ matrix.release_os }}/g" .goreleaser-template.yaml > .goreleaser.yaml
185+
[ "${{ matrix.release_os }}" == "hsm" ] && sed "s/REPLACE_WITH_RELEASE_GOOS/linux/g" .goreleaser-template.yaml > .goreleaser.yaml
185186
[ "${{ matrix.release_os }}" == "linux" ] && sed -i "s/^#LINUXONLY#//g" .goreleaser.yaml || true
187+
[ "${{ matrix.release_os }}" == "hsm" ] && sed -i "s/^#HSMONLY#//g" .goreleaser.yaml || true
188+
[ "${{ matrix.release_os }}" != "hsm" ] && sed -i "s/^#NONHSM#//g" .goreleaser.yaml || true
189+
sed -i "s/^#OTHERARCH#//g" .goreleaser.yaml
186190
187191
- name: "GoReleaser: Release"
188192
if: startsWith(github.ref, 'refs/tags/') || inputs.nightly

.goreleaser-template.yaml

Lines changed: 227 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -29,35 +29,35 @@ env:
2929
# - GOSUMDB=sum.golang.org
3030

3131
builds:
32-
- id: builds-linux
33-
tags:
34-
- ui
35-
ldflags:
36-
- -X github.com/openbao/openbao/version.fullVersion={{.Version}} -X github.com/openbao/openbao/version.GitCommit={{.Commit}} -X github.com/openbao/openbao/version.BuildDate={{ .Date }}
37-
env:
38-
- CGO_ENABLED=0
39-
goos:
40-
- REPLACE_WITH_RELEASE_GOOS
41-
goarch:
42-
- amd64
43-
#OTHERARCH# - arm
44-
#OTHERARCH# - arm64
45-
#OTHERARCH# - ppc64le
46-
#OTHERARCH# - riscv64
47-
#OTHERARCH# - s390x
48-
goarm:
49-
- "6"
50-
ignore:
51-
- goos: darwin
52-
- goos: dragonfly
53-
- goos: freebsd
54-
- goos: illumos
55-
- goos: netbsd
56-
- goos: openbsd
57-
- goos: wasip1
58-
- goos: windows
59-
mod_timestamp: "{{ .CommitTimestamp }}"
60-
skip: false
32+
#LINUXONLY# - id: builds-linux
33+
#LINUXONLY# tags:
34+
#LINUXONLY# - ui
35+
#LINUXONLY# ldflags:
36+
#LINUXONLY# - -X github.com/openbao/openbao/version.fullVersion={{.Version}} -X github.com/openbao/openbao/version.GitCommit={{.Commit}} -X github.com/openbao/openbao/version.BuildDate={{ .Date }}
37+
#LINUXONLY# env:
38+
#LINUXONLY# - CGO_ENABLED=0
39+
#LINUXONLY# goos:
40+
#LINUXONLY# - REPLACE_WITH_RELEASE_GOOS
41+
#LINUXONLY# goarch:
42+
#LINUXONLY# - amd64
43+
#LINUXONLY##OTHERARCH# - arm
44+
#LINUXONLY##OTHERARCH# - arm64
45+
#LINUXONLY##OTHERARCH# - ppc64le
46+
#LINUXONLY##OTHERARCH# - riscv64
47+
#LINUXONLY##OTHERARCH# - s390x
48+
#LINUXONLY# goarm:
49+
#LINUXONLY# - "6"
50+
#LINUXONLY# ignore:
51+
#LINUXONLY# - goos: darwin
52+
#LINUXONLY# - goos: dragonfly
53+
#LINUXONLY# - goos: freebsd
54+
#LINUXONLY# - goos: illumos
55+
#LINUXONLY# - goos: netbsd
56+
#LINUXONLY# - goos: openbsd
57+
#LINUXONLY# - goos: wasip1
58+
#LINUXONLY# - goos: windows
59+
#LINUXONLY# mod_timestamp: "{{ .CommitTimestamp }}"
60+
#LINUXONLY# skip: false
6161
- id: builds-other
6262
tags:
6363
- ui
@@ -159,6 +159,39 @@ builds:
159159
goarch: wasm
160160
mod_timestamp: "{{ .CommitTimestamp }}"
161161
skip: false
162+
#HSMONLY# - id: builds-hsm
163+
#HSMONLY# tags:
164+
#HSMONLY# - ui
165+
#HSMONLY# - hsm
166+
#HSMONLY# ldflags:
167+
#HSMONLY# - -X github.com/openbao/openbao/version.fullVersion={{.Version}} -X github.com/openbao/openbao/version.GitCommit={{.Commit}} -X github.com/openbao/openbao/version.BuildDate={{ .Date }} -X github.com/openbao/openbao/version.VersionMetadata=hsm
168+
#HSMONLY# env:
169+
#HSMONLY# - CGO_ENABLED=1
170+
#HSMONLY# goos:
171+
#HSMONLY# - REPLACE_WITH_RELEASE_GOOS
172+
#HSMONLY# goarch:
173+
#HSMONLY# - amd64
174+
#HSMONLY# ignore:
175+
#HSMONLY# - goos: darwin
176+
#HSMONLY# - goos: dragonfly
177+
#HSMONLY# - goos: freebsd
178+
#HSMONLY# - goos: illumos
179+
#HSMONLY# - goos: netbsd
180+
#HSMONLY# - goos: openbsd
181+
#HSMONLY# - goos: wasip1
182+
#HSMONLY# - goos: windows
183+
#HSMONLY# - goos: linux
184+
#HSMONLY# goarch: arm
185+
#HSMONLY# - goos: linux
186+
#HSMONLY# goarch: arm64
187+
#HSMONLY# - goos: linux
188+
#HSMONLY# goarch: ppc64le
189+
#HSMONLY# - goos: linux
190+
#HSMONLY# goarch: s390x
191+
#HSMONLY# - goos: linux
192+
#HSMONLY# goarch: riscv
193+
#HSMONLY# mod_timestamp: "{{ .CommitTimestamp }}"
194+
#HSMONLY# skip: false
162195

163196
report_sizes: true
164197

@@ -222,6 +255,66 @@ report_sizes: true
222255
#LINUXONLY# signature:
223256
#LINUXONLY# key_file: "{{ .Env.GPG_KEY_FILE }}"
224257

258+
#HSMONLY#nfpms:
259+
#HSMONLY# - vendor: OpenBao
260+
#HSMONLY# package_name: bao-hsm
261+
#HSMONLY# homepage: https://openbao.org
262+
#HSMONLY# maintainer: OpenBao <openbao@lists.lfedge.org>
263+
#HSMONLY# description: |
264+
#HSMONLY# OpenBao exists to provide a software solution to manage, store, and distribute
265+
#HSMONLY# sensitive data including secrets, certificates, and keys.
266+
#HSMONLY# license: MPL-2.0
267+
#HSMONLY# formats:
268+
#HSMONLY# - deb
269+
#HSMONLY# - rpm
270+
#HSMONLY# - archlinux
271+
#HSMONLY# dependencies:
272+
#HSMONLY# - openssl
273+
#HSMONLY# provides:
274+
#HSMONLY# - bao
275+
#HSMONLY# bindir: /usr/bin
276+
#HSMONLY# section: default
277+
#HSMONLY# contents:
278+
#HSMONLY# - src: ./LICENSE
279+
#HSMONLY# dst: /usr/share/doc/openbao/copyright
280+
#HSMONLY# file_info:
281+
#HSMONLY# mode: 0644
282+
#HSMONLY# - src: ./.release/linux/package/etc/openbao/openbao.env
283+
#HSMONLY# dst: /etc/openbao/openbao.env
284+
#HSMONLY# type: config|noreplace
285+
#HSMONLY# file_info:
286+
#HSMONLY# mode: 0644
287+
#HSMONLY# - src: ./.release/linux/package/etc/openbao/openbao.hcl
288+
#HSMONLY# dst: /etc/openbao/openbao.hcl
289+
#HSMONLY# type: config|noreplace
290+
#HSMONLY# file_info:
291+
#HSMONLY# mode: 0644
292+
#HSMONLY# - src: ./.release/linux/package/usr/lib/systemd/system/openbao.service
293+
#HSMONLY# dst: /usr/lib/systemd/system/openbao.service
294+
#HSMONLY# type: config|noreplace
295+
#HSMONLY# file_info:
296+
#HSMONLY# mode: 0644
297+
#HSMONLY# scripts:
298+
#HSMONLY# preinstall: ".release/linux/preinst"
299+
#HSMONLY# postinstall: ".release/linux/postinst"
300+
#HSMONLY# postremove: ".release/linux/postrm"
301+
#HSMONLY# overrides:
302+
#HSMONLY# deb:
303+
#HSMONLY# dependencies:
304+
#HSMONLY# - openssl
305+
#HSMONLY# rpm:
306+
#HSMONLY# dependencies:
307+
#HSMONLY# - openssl
308+
#HSMONLY# archlinux:
309+
#HSMONLY# dependencies:
310+
#HSMONLY# - openssl
311+
#HSMONLY# deb:
312+
#HSMONLY# signature:
313+
#HSMONLY# key_file: "{{ .Env.GPG_KEY_FILE }}"
314+
#HSMONLY# rpm:
315+
#HSMONLY# signature:
316+
#HSMONLY# key_file: "{{ .Env.GPG_KEY_FILE }}"
317+
225318
checksum:
226319
name_template: "checksums-REPLACE_WITH_RELEASE_GOOS.txt"
227320
disable: false
@@ -776,16 +869,109 @@ checksum:
776869
#LINUXONLY# - quay.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}-ppc64le
777870
#LINUXONLY# - quay.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}-s390x
778871

872+
#HSMONLY#dockers:
873+
#HSMONLY# - id: hsm-ubi-amd64
874+
#HSMONLY# use: buildx
875+
#HSMONLY# goos: linux
876+
#HSMONLY# goarch: amd64
877+
#HSMONLY# skip_push: false
878+
#HSMONLY# ids:
879+
#HSMONLY# - builds-hsm
880+
#HSMONLY# build_flag_templates:
881+
#HSMONLY# - "--pull"
882+
#HSMONLY# - "--build-arg=BIN_NAME={{ .ProjectName }}"
883+
#HSMONLY# - "--build-arg=REVISION={{ .FullCommit }}"
884+
#HSMONLY# - "--build-arg=VERSION={{ .Version }}"
885+
#HSMONLY# - "--platform=linux/amd64"
886+
#HSMONLY# - "--label=org.opencontainers.image.title={{ .ProjectName }}"
887+
#HSMONLY# - "--label=org.opencontainers.image.vendor=OpenBao"
888+
#HSMONLY# - "--label=org.opencontainers.image.description=OpenBao {{ .Version }}"
889+
#HSMONLY# - "--label=org.opencontainers.image.url=https://github.com/openbao/openbao"
890+
#HSMONLY# - "--label=org.opencontainers.image.documentation=https://github.com/openbao/openbao/blob/main/README.md"
891+
#HSMONLY# - "--label=org.opencontainers.image.source=https://github.com/openbao/openbao"
892+
#HSMONLY# - "--label=org.opencontainers.image.licenses=MPL-2.0"
893+
#HSMONLY# - "--label=org.opencontainers.image.version={{ .Version }}"
894+
#HSMONLY# - "--label=org.opencontainers.image.revision={{ .FullCommit }}"
895+
#HSMONLY# - '--label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}'
896+
#HSMONLY# - "--label=release={{ .Version }}"
897+
#HSMONLY# - "--label=revision={{ .FullCommit }}"
898+
#HSMONLY# - "--label=version={{ .Version }}"
899+
#HSMONLY# - "--target=ubi"
900+
#HSMONLY# image_templates:
901+
#HSMONLY# - "ghcr.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}-amd64"
902+
#HSMONLY# - "quay.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}-amd64"
903+
#HSMONLY# - "docker.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}-amd64"
904+
#HSMONLY# extra_files:
905+
#HSMONLY# - ./LICENSE
906+
#HSMONLY# - ./.release/docker/ubi-docker-entrypoint.sh
907+
#HSMONLY# - ./CHANGELOG.md
908+
#HSMONLY#
909+
#HSMONLY#docker_manifests:
910+
#HSMONLY# - name_template: ghcr.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}
911+
#HSMONLY# skip_push: false
912+
#HSMONLY# image_templates:
913+
#HSMONLY# - ghcr.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}-amd64
914+
#HSMONLY# - name_template: ghcr.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Major }}.{{ .Minor }}
915+
#HSMONLY# skip_push: ${{ .Prerelease }}
916+
#HSMONLY# image_templates:
917+
#HSMONLY# - ghcr.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}-amd64
918+
#HSMONLY# - name_template: ghcr.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Major }}
919+
#HSMONLY# skip_push: ${{ .Prerelease }}
920+
#HSMONLY# image_templates:
921+
#HSMONLY# - ghcr.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}-amd64
922+
#HSMONLY# - name_template: ghcr.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:latest
923+
#HSMONLY# skip_push: ${{ .Prerelease }}
924+
#HSMONLY# image_templates:
925+
#HSMONLY# - ghcr.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}-amd64
926+
#HSMONLY# - name_template: docker.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}
927+
#HSMONLY# skip_push: false
928+
#HSMONLY# image_templates:
929+
#HSMONLY# - docker.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}-amd64
930+
#HSMONLY# - name_template: docker.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Major }}.{{ .Minor }}
931+
#HSMONLY# skip_push: ${{ .Prerelease }}
932+
#HSMONLY# image_templates:
933+
#HSMONLY# - docker.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}-amd64
934+
#HSMONLY# - name_template: docker.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Major }}
935+
#HSMONLY# skip_push: ${{ .Prerelease }}
936+
#HSMONLY# image_templates:
937+
#HSMONLY# - docker.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}-amd64
938+
#HSMONLY# - name_template: docker.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:latest
939+
#HSMONLY# skip_push: ${{ .Prerelease }}
940+
#HSMONLY# image_templates:
941+
#HSMONLY# - docker.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}-amd64
942+
#HSMONLY# - name_template: quay.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}
943+
#HSMONLY# skip_push: false
944+
#HSMONLY# image_templates:
945+
#HSMONLY# - quay.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}-amd64
946+
#HSMONLY# - name_template: quay.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Major }}.{{ .Minor }}
947+
#HSMONLY# skip_push: ${{ .Prerelease }}
948+
#HSMONLY# image_templates:
949+
#HSMONLY# - quay.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}-amd64
950+
#HSMONLY# - name_template: quay.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Major }}
951+
#HSMONLY# skip_push: ${{ .Prerelease }}
952+
#HSMONLY# image_templates:
953+
#HSMONLY# - quay.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}-amd64
954+
#HSMONLY# - name_template: quay.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:latest
955+
#HSMONLY# skip_push: ${{ .Prerelease }}
956+
#HSMONLY# image_templates:
957+
#HSMONLY# - quay.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/openbao-hsm-ubi{{ .Env.NIGHTLY_RELEASE }}:{{ .Version }}-amd64
958+
779959
archives:
780960
- formats:
781961
- tar.gz
782962
# this name template makes the OS and Arch compatible with the results of `uname`.
783-
name_template: >-
784-
{{ .ProjectName }}_{{ .Version }}_{{- title .Os }}_
785-
{{- if eq .Arch "amd64" }}x86_64
786-
{{- else if eq .Arch "386" }}i386
787-
{{- else }}{{ .Arch }}{{ end }}
788-
{{- if .Arm }}v{{ .Arm }}{{ end }}
963+
#NONHSM# name_template: >-
964+
#NONHSM# {{ .ProjectName }}_{{ .Version }}_{{- title .Os }}_
965+
#NONHSM# {{- if eq .Arch "amd64" }}x86_64
966+
#NONHSM# {{- else if eq .Arch "386" }}i386
967+
#NONHSM# {{- else }}{{ .Arch }}{{ end }}
968+
#NONHSM# {{- if .Arm }}v{{ .Arm }}{{ end }}
969+
#HSMONLY# name_template: >-
970+
#HSMONLY# {{ .ProjectName }}-hsm_{{ .Version }}_{{- title .Os }}_
971+
#HSMONLY# {{- if eq .Arch "amd64" }}x86_64
972+
#HSMONLY# {{- else if eq .Arch "386" }}i386
973+
#HSMONLY# {{- else }}{{ .Arch }}{{ end }}
974+
#HSMONLY# {{- if .Arm }}v{{ .Arm }}{{ end }}
789975
# use zip for windows archives
790976
format_overrides:
791977
- goos: windows
@@ -804,10 +990,16 @@ archives:
804990

805991
sboms:
806992
- artifacts: archive
993+
#HSMONLY# documents:
994+
#HSMONLY# - "hsm-{{ .ArtifactName }}.spdx.sbom.json"
807995
- id: binary
808996
artifacts: binary
997+
#HSMONLY# documents:
998+
#HSMONLY# - "{{ .Binary }}-hsm_{{ .Version }}_{{ .Os }}_{{ .Arch }}.sbom.json"
809999
- id: package
8101000
artifacts: package
1001+
#HSMONLY# documents:
1002+
#HSMONLY# - "hsm-{{ .ArtifactName }}.spdx.sbom.json"
8111003

8121004
changelog:
8131005
disable: "{{ if gt (len .Env.NIGHTLY_RELEASE) 0 }}true{{ end }}"

Makefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,8 +368,13 @@ dev-gorelease:
368368
goreleaser-check:
369369
@$(SED) 's/REPLACE_WITH_RELEASE_GOOS/linux/g' $(CURDIR)/.goreleaser-template.yaml > $(CURDIR)/.goreleaser.yaml
370370
@$(SED) -i 's/^#LINUXONLY#//g' $(CURDIR)/.goreleaser.yaml
371+
@$(SED) -i 's/^#NONHSM#//g' $(CURDIR)/.goreleaser.yaml
371372
@$(GO_CMD) run github.com/goreleaser/goreleaser/v2@latest check
372373
@$(SED) 's/REPLACE_WITH_RELEASE_GOOS/linux/g' $(CURDIR)/.goreleaser-template.yaml > $(CURDIR)/.goreleaser.yaml
374+
@$(SED) -i 's/^#NONHSM#//g' $(CURDIR)/.goreleaser.yaml
375+
@$(GO_CMD) run github.com/goreleaser/goreleaser/v2@latest check
376+
@$(SED) 's/REPLACE_WITH_RELEASE_GOOS/linux/g' $(CURDIR)/.goreleaser-template.yaml > $(CURDIR)/.goreleaser.yaml
377+
@$(SED) -i 's/^#HSMONLY#//g' $(CURDIR)/.goreleaser.yaml
373378
@$(GO_CMD) run github.com/goreleaser/goreleaser/v2@latest check
374379

375380
.PHONY: sync-deps

0 commit comments

Comments
 (0)