Files
probo/.goreleaser.yaml
Bryan Frimin 6919b9372a Add proboctl core skeleton and build system
Introduce the proboctl CLI entry point, root command, version,
completion, iostreams, shared cmdutil helpers (flags, table, JSON,
time formatting), API client with pagination, config management,
goreleaser configuration, and build system integration.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 15:41:47 +01:00

231 lines
4.8 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
- id: probod-bootstrap
main: ./cmd/probod-bootstrap/main.go
binary: probod-bootstrap
ldflags:
- -s -w
gcflags:
- -e
env:
- CGO_ENABLED=0
goos:
- windows
- darwin
goarch:
- amd64
- arm64
ignore:
- goos: windows
goarch: arm64
- id: proboctl
main: ./cmd/proboctl/main.go
binary: proboctl
ldflags:
- -s -w
- -X 'main.version={{.Version}}'
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
- id: probod-bootstrap-docker
main: ./cmd/probod-bootstrap/main.go
binary: probod-bootstrap
ldflags:
- -s -w
gcflags:
- -e
env:
- CGO_ENABLED=0
goos:
- linux
goarch:
- amd64
- arm64
- id: proboctl-docker
main: ./cmd/proboctl/main.go
binary: proboctl
ldflags:
- -s -w
- -X 'main.version={{.Version}}'
gcflags:
- -e
env:
- CGO_ENABLED=0
goos:
- linux
goarch:
- amd64
- arm64
archives:
- builds:
- probod
- probod-bootstrap
- proboctl
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
signature: "${artifact}.bundle"
args:
- -c
- |
if [ "{{ .IsSnapshot }}" = "true" ]; then
echo "Skipping signing (snapshot: {{ .IsSnapshot }})"
else
cosign sign-blob --bundle="${signature}" "${artifact}" --yes
fi
artifacts: checksum
output: true
dockers_v2:
- images:
- "ghcr.io/getprobo/probo"
tags:
- "{{ .Tag }}"
- latest
dockerfile: Dockerfile
ids:
- probod-docker
- probod-bootstrap-docker
extra_files:
- entrypoint.sh
labels:
"org.opencontainers.image.title": "{{.ProjectName}}"
"org.opencontainers.image.description": "Probo compliance management platform"
"org.opencontainers.image.url": "https://github.com/getprobo/probo"
"org.opencontainers.image.source": "https://github.com/getprobo/probo"
"org.opencontainers.image.version": "{{.Version}}"
"org.opencontainers.image.created": '{{time "2006-01-02T15:04:05Z07:00"}}'
"org.opencontainers.image.revision": "{{.FullCommit}}"
"org.opencontainers.image.licenses": "MIT"
platforms:
- linux/amd64
- linux/arm64
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
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)