opentofu/.goreleaser.yaml
abstractionfactory 892440def6
Fixes #1931: Dockerfile update / base image deprecation (#1993)
Signed-off-by: Janos <179820029+abstractionfactory@users.noreply.github.com>
2024-09-17 16:07:07 +02:00

251 lines
9.0 KiB
YAML

# Copyright (c) The OpenTofu Authors
# SPDX-License-Identifier: MPL-2.0
# Copyright (c) 2023 HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
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: tar.gz
id: targz
name_template: "{{ .ProjectName }}_{{ .Version }}_{{- .Os }}_{{- .Arch }}"
- format: zip
id: 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
skip_push: auto # Skips the push on pre-release versions, like 1.6.1-alpha1. See https://goreleaser.com/customization/docker_manifest/#customization
- 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
skip_push: auto # Skips the push on pre-release versions, like 1.6.1-alpha1. See https://goreleaser.com/customization/docker_manifest/#customization
- 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
skip_push: auto # Skips the push on pre-release versions, like 1.6.1-alpha1. See https://goreleaser.com/customization/docker_manifest/#customization
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
rpm:
signature:
key_file: "{{ if index .Env \"GPG_KEY_FILE\" }}{{.Env.GPG_KEY_FILE}}{{ end }}"
deb:
signature:
key_file: "{{ if index .Env \"GPG_KEY_FILE\" }}{{.Env.GPG_KEY_FILE}}{{ end }}"
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.
disable: '{{ if eq .Env.RELEASE_FLAG_LATEST "false" }}true{{ else }}false{{ end }}'
channel_templates:
- '{{ if eq .Env.RELEASE_FLAG_PRERELEASE "true" }}latest/edge{{ else }}latest/stable{{ end }}'
grade: '{{ if eq .Env.RELEASE_FLAG_PRERELEASE "true" }}devel{{ else }}stable{{ end }}'
confinement: classic
license: MPL-2.0
base: core22
apps:
tofu:
command: tofu
aliases: [tofu]
checksum:
name_template: "{{ .ProjectName }}_{{ .Version }}_SHA256SUMS"
signs:
- artifacts: all
id: cosign
cmd: cosign
certificate: "${artifact}.pem"
args: [ "sign-blob", "--oidc-issuer=https://token.actions.githubusercontent.com", "--output-certificate=${certificate}", "--output-signature=${signature}", "${artifact}", "--yes" ]
- artifacts: all
signature: "${artifact}.gpgsig"
id: gpg
cmd: gpg
args: ["--batch", "-u", "{{ .Env.GPG_FINGERPRINT }}", "--output", "${signature}", "--detach-sign", "${artifact}" ]
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
draft: true