project_name: tofu before: hooks: - go mod tidy - go generate ./... - make protobuf builds: - env: - CGO_ENABLED=0 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/nfpm/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 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