|
| 1 | +# Terraform Provider release workflow. |
1 | 2 | name: Release
|
2 | 3 |
|
| 4 | +# This GitHub action creates a release when a tag that matches the pattern |
| 5 | +# "v*" (e.g. v0.1.0) is created. |
3 | 6 | on:
|
4 | 7 | push:
|
5 | 8 | tags:
|
6 | 9 | - 'v*'
|
7 | 10 |
|
| 11 | +# Releases need permissions to read and write the repository contents. |
| 12 | +# GitHub considers creating releases and uploading assets as writing contents. |
8 | 13 | permissions:
|
9 | 14 | contents: write
|
10 | 15 |
|
11 | 16 | jobs:
|
12 |
| - release: |
| 17 | + goreleaser: |
13 | 18 | runs-on: ubuntu-latest
|
14 | 19 | steps:
|
15 |
| - - uses: actions/checkout@v4 |
| 20 | + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 |
16 | 21 | with:
|
| 22 | + # Allow goreleaser to access older tag information. |
17 | 23 | fetch-depth: 0
|
18 |
| - |
19 |
| - - name: Set up Go |
20 |
| - uses: actions/setup-go@v4 |
| 24 | + - uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0 |
21 | 25 | with:
|
22 |
| - go-version: '1.23' |
| 26 | + go-version-file: 'go.mod' |
23 | 27 | cache: true
|
24 |
| - |
25 | 28 | - name: Import GPG key
|
| 29 | + uses: crazy-max/ghaction-import-gpg@cb9bde2e2525e640591a934b1fd28eef1dcaf5e5 # v6.2.0 |
26 | 30 | id: import_gpg
|
27 |
| - uses: crazy-max/ghaction-import-gpg@v6 |
28 | 31 | with:
|
29 | 32 | gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
30 |
| - passphrase: ${{ secrets.GPG_PASSPHRASE }} |
31 |
| - |
32 |
| - - name: Generate release notes |
33 |
| - run: | |
34 |
| - echo "# Release notes" > release-notes.txt |
35 |
| - git log --pretty=format:"* %s" $(git describe --tags --abbrev=0 HEAD^)..HEAD >> release-notes.txt |
36 |
| -
|
37 |
| - - name: Create GitHub Release |
38 |
| - uses: softprops/action-gh-release@v1 |
| 33 | + passphrase: ${{ secrets.PASSPHRASE }} |
| 34 | + - name: Run GoReleaser |
| 35 | + uses: goreleaser/goreleaser-action@9ed2f89a662bf1735a48bc8557fd212fa902bebf # v6.1.0 |
39 | 36 | with:
|
40 |
| - body_path: release-notes.txt |
41 |
| - token: ${{ secrets.GITHUB_TOKEN }} |
42 |
| - files: | |
43 |
| - terraform-provider-pomerium_* |
| 37 | + args: release --clean |
44 | 38 | env:
|
| 39 | + # GitHub sets the GITHUB_TOKEN secret automatically. |
| 40 | + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
45 | 41 | GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }}
|
0 commit comments