mirror of
https://github.com/opentofu/opentofu.git
synced 2024-12-23 23:50:12 -06:00
5536f790fd
Signed-off-by: David Sims <simsdj82@gmail.com>
249 lines
8.6 KiB
YAML
249 lines
8.6 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
|
|
|
|
- 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
|
|
skip_push: auto
|
|
|
|
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
|