opentofu/.goreleaser.yaml

224 lines
7.7 KiB
YAML

project_name: tofu
before:
hooks:
- go mod tidy
- go generate ./...
- make protobuf
builds:
- env:
- CGO_ENABLED=0
main: ./cmd/tofu
flags:
- "-mod=readonly"
- "-trimpath"
ldflags:
- "-s -w"
- "-X 'github.com/opentofu/opentofu/version.dev=no'"
goos:
- linux
- windows
- darwin
- freebsd
- openbsd
- solaris
goarch:
- "386"
- amd64
- arm
- arm64
ignore:
- goos: freebsd
goarch: arm64
- goos: openbsd
goarch: arm
- goos: openbsd
goarch: arm64
- goos: solaris
goarch: "386"
- goos: solaris
goarch: arm
- goos: solaris
goarch: arm64
- goos: windows
goarch: arm
- goos: windows
goarch: arm64
- goos: darwin
goarch: "386"
- goos: darwin
goarch: arm
archives:
- format: zip
name_template: "{{ .ProjectName }}_{{ .Version }}_{{- .Os }}_{{- .Arch }}"
dockers:
- use: buildx
goarch: amd64
build_flag_templates:
- "--pull"
- "--platform=linux/amd64"
- "--label=org.opencontainers.image.title={{ .ProjectName }}"
- "--label=org.opencontainers.image.vendor=OpenTofu"
- "--label=org.opencontainers.image.description=OpenTofu {{ .Version }}"
- "--label=org.opencontainers.image.url=https://github.com/opentofu/opentofu"
- "--label=org.opencontainers.image.documentation=https://github.com/opentofu/opentofu/blob/main/README.md"
- "--label=org.opencontainers.image.source=https://github.com/opentofu/opentofu"
- "--label=org.opencontainers.image.licenses=MPL-2.0"
- "--label=org.opencontainers.image.version={{ .Version }}"
- "--label=org.opencontainers.image.revision={{ .FullCommit }}"
- "--label=org.opencontainers.image.created={{ time \"2006-01-02T15:04:05Z07:00\" }}"
image_templates:
- "ghcr.io/opentofu/opentofu:{{ .Version }}-amd64"
- use: buildx
goarch: arm64
build_flag_templates:
- "--pull"
- "--platform=linux/arm64"
- "--label=org.opencontainers.image.title={{ .ProjectName }}"
- "--label=org.opencontainers.image.vendor=OpenTofu"
- "--label=org.opencontainers.image.description=OpenTofu {{ .Version }}"
- "--label=org.opencontainers.image.url=https://github.com/opentofu/opentofu"
- "--label=org.opencontainers.image.documentation=https://github.com/opentofu/opentofu/blob/main/README.md"
- "--label=org.opencontainers.image.source=https://github.com/opentofu/opentofu"
- "--label=org.opencontainers.image.licenses=MPL-2.0"
- "--label=org.opencontainers.image.version={{ .Version }}"
- "--label=org.opencontainers.image.revision={{ .FullCommit }}"
- "--label=org.opencontainers.image.created={{ time \"2006-01-02T15:04:05Z07:00\" }}"
image_templates:
- "ghcr.io/opentofu/opentofu:{{ .Version }}-arm64"
- use: buildx
goarch: arm
build_flag_templates:
- "--pull"
- "--platform=linux/arm"
- "--label=org.opencontainers.image.title={{ .ProjectName }}"
- "--label=org.opencontainers.image.vendor=OpenTofu"
- "--label=org.opencontainers.image.description=OpenTofu {{ .Version }}"
- "--label=org.opencontainers.image.url=https://github.com/opentofu/opentofu"
- "--label=org.opencontainers.image.documentation=https://github.com/opentofu/opentofu/blob/main/README.md"
- "--label=org.opencontainers.image.source=https://github.com/opentofu/opentofu"
- "--label=org.opencontainers.image.licenses=MPL-2.0"
- "--label=org.opencontainers.image.version={{ .Version }}"
- "--label=org.opencontainers.image.revision={{ .FullCommit }}"
- "--label=org.opencontainers.image.created={{ time \"2006-01-02T15:04:05Z07:00\" }}"
image_templates:
- "ghcr.io/opentofu/opentofu:{{ .Version }}-arm"
- use: buildx
goarch: "386"
build_flag_templates:
- "--pull"
- "--platform=linux/386"
- "--label=org.opencontainers.image.title={{ .ProjectName }}"
- "--label=org.opencontainers.image.vendor=OpenTofu"
- "--label=org.opencontainers.image.description=OpenTofu {{ .Version }}"
- "--label=org.opencontainers.image.url=https://github.com/opentofu/opentofu"
- "--label=org.opencontainers.image.documentation=https://github.com/opentofu/opentofu/blob/main/README.md"
- "--label=org.opencontainers.image.source=https://github.com/opentofu/opentofu"
- "--label=org.opencontainers.image.licenses=MPL-2.0"
- "--label=org.opencontainers.image.version={{ .Version }}"
- "--label=org.opencontainers.image.revision={{ .FullCommit }}"
- "--label=org.opencontainers.image.created={{ time \"2006-01-02T15:04:05Z07:00\" }}"
image_templates:
- "ghcr.io/opentofu/opentofu:{{ .Version }}-386"
docker_manifests:
- name_template: ghcr.io/opentofu/opentofu:{{ .Version }}
image_templates:
- ghcr.io/opentofu/opentofu:{{ .Version }}-amd64
- ghcr.io/opentofu/opentofu:{{ .Version }}-arm64
- ghcr.io/opentofu/opentofu:{{ .Version }}-arm
- ghcr.io/opentofu/opentofu:{{ .Version }}-386
- name_template: ghcr.io/opentofu/opentofu:{{ .Major }}.{{ .Minor }}
image_templates:
- ghcr.io/opentofu/opentofu:{{ .Version }}-amd64
- ghcr.io/opentofu/opentofu:{{ .Version }}-arm64
- ghcr.io/opentofu/opentofu:{{ .Version }}-arm
- ghcr.io/opentofu/opentofu:{{ .Version }}-386
- name_template: ghcr.io/opentofu/opentofu:{{ .Major }}
image_templates:
- ghcr.io/opentofu/opentofu:{{ .Version }}-amd64
- ghcr.io/opentofu/opentofu:{{ .Version }}-arm64
- ghcr.io/opentofu/opentofu:{{ .Version }}-arm
- ghcr.io/opentofu/opentofu:{{ .Version }}-386
- name_template: ghcr.io/opentofu/opentofu:latest
image_templates:
- ghcr.io/opentofu/opentofu:{{ .Version }}-amd64
- ghcr.io/opentofu/opentofu:{{ .Version }}-arm64
- ghcr.io/opentofu/opentofu:{{ .Version }}-arm
- ghcr.io/opentofu/opentofu:{{ .Version }}-386
nfpms:
- file_name_template: '{{ .ProjectName }}_{{ .Version }}_{{ .Arch }}'
maintainer: 'https://github.com/orgs/opentofu/teams/opentofu-core-team'
homepage: https://opentofu.org
description: >-
OpenTofu lets you declaratively manage your cloud infrastructure.
license: "MPL-2.0"
formats:
- deb
- rpm
- apk
bindir: /usr/bin
section: default
contents:
- src: ./LICENSE
dst: /usr/share/doc/opentofu/copyright
file_info:
mode: 0444
snapcrafts:
- name: opentofu
publish: true
summary: OpenTofu lets you declaratively manage your cloud infrastructure.
description: |
OpenTofu is an OSS tool for building, changing, and versioning infrastructure
safely and efficiently. OpenTofu can manage existing and popular service
providers as well as custom in-house solutions.
base: core22
grade: stable
confinement: classic
license: MPL-2.0
apps:
tofu:
command: tofu
aliases: [tofu]
checksum:
name_template: "{{ .ProjectName }}_{{ .Version }}_SHA256SUMS"
signs:
- artifacts: checksum
cmd: cosign
certificate: "${artifact}.pem"
args: [ "sign-blob", "--oidc-issuer=https://token.actions.githubusercontent.com", "--output-certificate=${certificate}", "--output-signature=${signature}", "${artifact}", "--yes" ]
docker_signs:
- artifacts: all
args: [ "sign", "--oidc-issuer=https://token.actions.githubusercontent.com", "${artifact}@${digest}", "--yes" ]
snapshot:
name_template: "{{ .Version }}-next"
changelog:
use: github-native
release:
prerelease: auto
# If you want to examine the release before its live, uncomment this line:
# draft: false