name: Release on: push: tags: - 'v[0-9]+.[0-9]+.[0-9]+*' permissions: contents: write jobs: go-version: runs-on: ubuntu-latest outputs: version: ${{ steps.go-version.outputs.go-version }} steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - id: go-version # We use .go-version as our source of truth for current Go # version, because "goenv" can react to it automatically. run: | echo "Building with Go $(cat .go-version)" echo "go-version=$(cat .go-version)" >> "$GITHUB_OUTPUT" release-notes: runs-on: ubuntu-latest steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: fetch-depth: 0 - name: Generate Release Notes run: sed -n -e "1{/# /d;}" -e "2{/^$/d;}" -e "/# $(git describe --abbrev=0 --exclude="$(git describe --abbrev=0 --match='v*.*.*' --tags)" --match='v*.*.*' --tags | tr -d v)/q;p" CHANGELOG.md > release-notes.txt - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: release-notes path: release-notes.txt retention-days: 1 terraform-provider-release: name: 'Terraform Provider Release' needs: [go-version, release-notes] uses: hashicorp/ghaction-terraform-provider-release/.github/workflows/hashicorp.yml@v5 secrets: hc-releases-github-token: '${{ secrets.HASHI_RELEASES_GITHUB_TOKEN }}' hc-releases-host-staging: '${{ secrets.HC_RELEASES_HOST_STAGING }}' hc-releases-host-prod: '${{ secrets.HC_RELEASES_HOST_PROD }}' hc-releases-key-prod: '${{ secrets.HC_RELEASES_KEY_PROD }}' hc-releases-key-staging: '${{ secrets.HC_RELEASES_KEY_STAGING }}' hc-releases-terraform-registry-sync-token: '${{ secrets.TF_PROVIDER_RELEASE_TERRAFORM_REGISTRY_SYNC_TOKEN }}' setup-signore-github-token: '${{ secrets.HASHI_SIGNORE_GITHUB_TOKEN }}' signore-client-id: '${{ secrets.SIGNORE_CLIENT_ID }}' signore-client-secret: '${{ secrets.SIGNORE_CLIENT_SECRET }}' with: release-notes: true setup-go-version: '${{ needs.go-version.outputs.version }}' # Product Version (e.g. v1.2.3 or github.ref_name) product-version: '${{ github.ref_name }}'