Files
probo/.goreleaser.yaml
Bryan Frimin 845c0ccb90 Fix missing entrypoint.sh
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-10-31 16:10:01 +01:00

200 lines
5.3 KiB
YAML

# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
version: 2
project_name: probod
before:
hooks:
- make @probo/emails @probo/console @probo/trust
builds:
- id: probod
main: ./cmd/probod/main.go
binary: probod
ldflags:
- -s -w
- -X 'main.version={{.Version}}'
- -X 'main.env=prod'
gcflags:
- -e
env:
- CGO_ENABLED=0
goos:
- windows
- darwin
goarch:
- amd64
- arm64
ignore:
- goos: windows
goarch: arm64
# Docker-specific builds for Linux only
- id: probod-docker
main: ./cmd/probod/main.go
binary: probod
ldflags:
- -s -w
- -X 'main.version={{.Version}}'
- -X 'main.env=prod'
gcflags:
- -e
env:
- CGO_ENABLED=0
goos:
- linux
goarch:
- amd64
- arm64
archives:
- name_template: >-
{{ .ProjectName }}_
{{- title .Os }}_
{{- if eq .Arch "amd64" }}x86_64
{{- else if eq .Arch "386" }}i386
{{- else }}{{ .Arch }}{{ end }}
{{- if .Arm }}v{{ .Arm }}{{ end }}
files:
- README.md
- LICENSE
- CHANGELOG.md
checksum:
name_template: "checksums.txt"
signs:
- cmd: sh
env:
- COSIGN_EXPERIMENTAL=1
certificate: "${artifact}.pem"
args:
- -c
- |
if [ "{{ .IsSnapshot }}" = "true" ]; then
echo "Skipping signing (snapshot: {{ .IsSnapshot }})"
else
cosign sign-blob --output-certificate="${certificate}" --output-signature="${signature}" "${artifact}" --yes
fi
artifacts: checksum
output: true
docker_manifests:
- name_template: "ghcr.io/getprobo/probo:{{ .Tag }}"
image_templates:
- "ghcr.io/getprobo/probo:{{ .Tag }}-amd64"
- "ghcr.io/getprobo/probo:{{ .Tag }}-arm64"
skip_push: "{{ .IsSnapshot }}"
- name_template: "ghcr.io/getprobo/probo:latest"
image_templates:
- "ghcr.io/getprobo/probo:latest-amd64"
- "ghcr.io/getprobo/probo:latest-arm64"
skip_push: "{{ .IsSnapshot }}"
docker_signs:
- id: images
cmd: sh
env:
- COSIGN_EXPERIMENTAL=1
artifacts: images
output: true
args:
- -c
- |
if [ "{{ .IsSnapshot }}" = "true" ]; then
echo "Skipping Docker image signing (snapshot: {{ .IsSnapshot }})"
else
cosign sign "${artifact}@${digest}" --yes
fi
- id: manifests
cmd: sh
env:
- COSIGN_EXPERIMENTAL=1
artifacts: manifests
output: true
args:
- -c
- |
if [ "{{ .IsSnapshot }}" = "true" ]; then
echo "Skipping Docker manifest signing (snapshot: {{ .IsSnapshot }})"
else
cosign sign "${artifact}@${digest}" --yes
fi
dockers:
- image_templates:
- "ghcr.io/getprobo/probo:{{ .Tag }}-amd64"
- "ghcr.io/getprobo/probo:latest-amd64"
dockerfile: Dockerfile
use: buildx
build_flag_templates:
- "--platform=linux/amd64"
- "--label=org.opencontainers.image.title={{.ProjectName}}"
- "--label=org.opencontainers.image.description=Probo compliance management platform"
- "--label=org.opencontainers.image.url=https://github.com/getprobo/probo"
- "--label=org.opencontainers.image.source=https://github.com/getprobo/probo"
- "--label=org.opencontainers.image.version={{.Version}}"
- '--label=org.opencontainers.image.created={{time "2006-01-02T15:04:05Z07:00"}}'
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
- "--label=org.opencontainers.image.licenses=MIT"
extra_files:
- entrypoint.sh
# Use the Docker-specific build with AMD64 filtering
ids:
- probod-docker
goos: linux
goarch: amd64
skip_push: "{{ .IsSnapshot }}"
- image_templates:
- "ghcr.io/getprobo/probo:{{ .Tag }}-arm64"
- "ghcr.io/getprobo/probo:latest-arm64"
dockerfile: Dockerfile
use: buildx
build_flag_templates:
- "--platform=linux/arm64"
- "--label=org.opencontainers.image.title={{.ProjectName}}"
- "--label=org.opencontainers.image.description=Probo compliance management platform"
- "--label=org.opencontainers.image.url=https://github.com/getprobo/probo"
- "--label=org.opencontainers.image.source=https://github.com/getprobo/probo"
- "--label=org.opencontainers.image.version={{.Version}}"
- '--label=org.opencontainers.image.created={{time "2006-01-02T15:04:05Z07:00"}}'
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
- "--label=org.opencontainers.image.licenses=MIT"
extra_files:
- entrypoint.sh
# Use the Docker-specific build with ARM64 filtering
ids:
- probod-docker
goos: linux
goarch: arm64
skip_push: "{{ .IsSnapshot }}"
changelog:
sort: asc
filters:
exclude:
- "^docs:"
- "^test:"
- "^chore:"
- "^style:"
- "^refactor:"
- "^ci:"
- "^build:"
- Merge pull request
- Merge branch
- go mod tidy
release:
draft: false
prerelease: auto
mode: replace
header: |
## Changes in {{ .Tag }}
footer: |
## Docker Images
- `ghcr.io/getprobo/probo:{{ .Tag }}` (multi-arch: linux/amd64, linux/arm64)
- `ghcr.io/getprobo/probo:latest` (multi-arch: linux/amd64, linux/arm64)
### Architecture-specific images
- `ghcr.io/getprobo/probo:{{ .Tag }}-amd64`
- `ghcr.io/getprobo/probo:{{ .Tag }}-arm64`