197 lines
5.2 KiB
YAML
197 lines
5.2 KiB
YAML
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
|
|
version: 2
|
|
|
|
project_name: probod
|
|
|
|
before:
|
|
hooks:
|
|
- make @probo/console
|
|
|
|
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"
|
|
|
|
sboms:
|
|
- artifacts: archive
|
|
documents:
|
|
- "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}_sbom.json"
|
|
cmd: syft
|
|
args:
|
|
- "dir:."
|
|
- "--output=cyclonedx-json={{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}_sbom.json"
|
|
- "--source-name={{ .ProjectName }}"
|
|
- "--source-version={{ .Version }}"
|
|
|
|
signs:
|
|
- cmd: cosign
|
|
env:
|
|
- COSIGN_EXPERIMENTAL=1
|
|
certificate: "${artifact}.pem"
|
|
args:
|
|
- sign-blob
|
|
- "--output-certificate=${certificate}"
|
|
- "--output-signature=${signature}"
|
|
- "${artifact}"
|
|
- "--yes"
|
|
artifacts: checksum
|
|
output: true
|
|
|
|
docker_manifests:
|
|
- name_template: "ghcr.io/getprobo/probo:{{ .Version }}"
|
|
image_templates:
|
|
- "ghcr.io/getprobo/probo:{{ .Version }}-amd64"
|
|
- "ghcr.io/getprobo/probo:{{ .Version }}-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: cosign
|
|
env:
|
|
- COSIGN_EXPERIMENTAL=1
|
|
artifacts: images
|
|
output: true
|
|
args:
|
|
- "sign"
|
|
- "${artifact}@${digest}"
|
|
- "--yes"
|
|
- id: manifests
|
|
cmd: cosign
|
|
env:
|
|
- COSIGN_EXPERIMENTAL=1
|
|
artifacts: manifests
|
|
output: true
|
|
args:
|
|
- "sign"
|
|
- "${artifact}@${digest}"
|
|
- "--yes"
|
|
|
|
dockers:
|
|
- image_templates:
|
|
- "ghcr.io/getprobo/probo:{{ .Version }}-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"
|
|
# Use the Docker-specific build with AMD64 filtering
|
|
ids:
|
|
- probod-docker
|
|
goos: linux
|
|
goarch: amd64
|
|
skip_push: "{{ .IsSnapshot }}"
|
|
- image_templates:
|
|
- "ghcr.io/getprobo/probo:{{ .Version }}-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"
|
|
# 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:{{ .Version }}` (multi-arch: linux/amd64, linux/arm64)
|
|
- `ghcr.io/getprobo/probo:latest` (multi-arch: linux/amd64, linux/arm64)
|
|
|
|
### Architecture-specific images
|
|
- `ghcr.io/getprobo/probo:{{ .Version }}-amd64`
|
|
- `ghcr.io/getprobo/probo:{{ .Version }}-arm64`
|