Skip to content

Commit 9ee005d

Browse files
authored
update release to new github actions process (#11621)
* update release to new github actions process * update goreleaser, add manifest file * swich to old hc-releases cmd * put special binary naming back in as well * last changes? * add files back in
1 parent d9e377c commit 9ee005d

File tree

3 files changed

+49
-50
lines changed

3 files changed

+49
-50
lines changed

.github/workflows/release.yml

+34-48
Original file line numberDiff line numberDiff line change
@@ -5,59 +5,45 @@ on:
55
tags:
66
- 'v[0-9]+.[0-9]+.[0-9]+*'
77

8-
env:
9-
GOPROXY: https://proxy.golang.org/
10-
PROTOCOL_VERSION: "5.0"
11-
PROTOCOL_VERSIONS: "5.0"
12-
SIGNER: interim_signing_subkey_7685B676
8+
permissions:
9+
contents: write
1310

1411
jobs:
15-
Release:
12+
go-version:
13+
runs-on: ubuntu-latest
14+
outputs:
15+
version: ${{ steps.go-version.outputs.version }}
16+
steps:
17+
- uses: actions/checkout@v2
18+
- id: go-version
19+
run: echo "::set-output name=version::$(cat ./.go-version)"
20+
release-notes:
1621
runs-on: ubuntu-latest
1722
steps:
1823
- uses: actions/checkout@v2
1924
with:
2025
fetch-depth: 0
21-
- name: Read go version
22-
id: go-version
23-
run: |
24-
content=`cat ./.go-version`
25-
echo "::set-output name=content::$content"
26-
- uses: actions/setup-go@v2
27-
with:
28-
# TODO: Replace with go-version-from-file when it is supported
29-
# https://github.com/actions/setup-go/pull/62
30-
go-version: ${{ steps.go-version.outputs.content }}
31-
- uses: hashicorp/setup-hc-releases@v1
32-
with:
33-
github-token: ${{ secrets.HASHI_RELEASES_GITHUB_TOKEN }}
34-
signer: ${{ env.SIGNER }}
35-
- uses: hashicorp/setup-signore@v2
36-
with:
37-
github-token: ${{ secrets.HASHI_SIGNORE_GITHUB_TOKEN }}
38-
signer: interim_signing_subkey_768B676
39-
- name: Release Notes
40-
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 > /tmp/RELEASE-NOTES.md
41-
- uses: aws-actions/configure-aws-credentials@v1
42-
with:
43-
aws-access-key-id: ${{ secrets.TF_PROVIDER_RELEASE_AWS_ACCESS_KEY_ID }}
44-
aws-secret-access-key: ${{ secrets.TF_PROVIDER_RELEASE_AWS_SECRET_ACCESS_KEY }}
45-
aws-region: us-east-1
46-
role-to-assume: ${{ secrets.TF_PROVIDER_RELEASE_AWS_ROLE_ARN }}
47-
role-duration-seconds: 3600
48-
# TODO: allow session tagging once IAM permission changes addressed
49-
# Reference: https://github.com/hashicorp/hc-releases/issues/124
50-
role-skip-session-tagging: true
51-
- name: goreleaser release
52-
uses: goreleaser/goreleaser-action@v2
26+
- name: Generate Release Notes
27+
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
28+
- uses: actions/upload-artifact@v2
5329
with:
54-
args: release --release-notes /tmp/RELEASE-NOTES.md --rm-dist
55-
env:
56-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
57-
SIGNORE_CLIENT_ID: ${{ secrets.SIGNORE_CLIENT_ID }}
58-
SIGNORE_CLIENT_SECRET: ${{ secrets.SIGNORE_CLIENT_SECRET }}
59-
- name: hc-releases publish
60-
run: hc-releases publish -product=${{ github.event.repository.name }}
61-
env:
62-
FASTLY_API_TOKEN: ${{ secrets.HASHI_FASTLY_PURGE_TOKEN }}
63-
TERRAFORM_REGISTRY_SYNC_TOKEN: ${{ secrets.TF_PROVIDER_RELEASE_TERRAFORM_REGISTRY_SYNC_TOKEN }}
30+
name: release-notes
31+
path: release-notes.txt
32+
retention-days: 1
33+
terraform-provider-release:
34+
name: 'Terraform Provider Release'
35+
needs: [go-version, release-notes]
36+
uses: hashicorp/ghaction-terraform-provider-release/.github/workflows/hashicorp.yml@v1
37+
secrets:
38+
hc-releases-aws-access-key-id: '${{ secrets.TF_PROVIDER_RELEASE_AWS_ACCESS_KEY_ID }}'
39+
hc-releases-aws-secret-access-key: '${{ secrets.TF_PROVIDER_RELEASE_AWS_SECRET_ACCESS_KEY }}'
40+
hc-releases-aws-role-arn: '${{ secrets.TF_PROVIDER_RELEASE_AWS_ROLE_ARN }}'
41+
hc-releases-fastly-api-token: '${{ secrets.HASHI_FASTLY_PURGE_TOKEN }}'
42+
hc-releases-github-token: '${{ secrets.HASHI_RELEASES_GITHUB_TOKEN }}'
43+
hc-releases-terraform-registry-sync-token: '${{ secrets.TF_PROVIDER_RELEASE_TERRAFORM_REGISTRY_SYNC_TOKEN }}'
44+
setup-signore-github-token: '${{ secrets.HASHI_SIGNORE_GITHUB_TOKEN }}'
45+
signore-client-id: '${{ secrets.SIGNORE_CLIENT_ID }}'
46+
signore-client-secret: '${{ secrets.SIGNORE_CLIENT_SECRET }}'
47+
with:
48+
release-notes: true
49+
setup-go-version: '${{ needs.go-version.outputs.version }}'

.goreleaser.yml

+9-2
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,17 @@ builds:
3232
- -s -w -X internal/provider.Version={{.Version}}
3333
mod_timestamp: '{{ .CommitTimestamp }}'
3434
checksum:
35+
extra_files:
36+
- glob: 'terraform-registry-manifest.json'
37+
name_template: '{{ .ProjectName }}_{{ .Version }}_manifest.json'
3538
name_template: '{{ .ProjectName }}_{{ .Version }}_SHA256SUMS'
3639
algorithm: sha256
3740
publishers:
3841
- name: hc-releases
3942
checksum: true
43+
extra_files:
44+
- glob: 'terraform-registry-manifest.json'
45+
name_template: '{{ .ProjectName }}_{{ .Version }}_manifest.json'
4046
signature: true
4147
cmd: hc-releases upload-file -header="x-terraform-protocol-version={{ .Env.PROTOCOL_VERSION }}" -header="x-terraform-protocol-versions={{ .Env.PROTOCOL_VERSIONS }}" {{ abs .ArtifactPath }}
4248
env:
@@ -46,6 +52,9 @@ publishers:
4652
- AWS_SECRET_ACCESS_KEY={{ .Env.AWS_SECRET_ACCESS_KEY }}
4753
- AWS_SESSION_TOKEN={{ .Env.AWS_SESSION_TOKEN }}
4854
release:
55+
extra_files:
56+
- glob: 'terraform-registry-manifest.json'
57+
name_template: '{{ .ProjectName }}_{{ .Version }}_manifest.json'
4958
ids:
5059
- none
5160
signs:
@@ -58,7 +67,6 @@ signs:
5867
sign
5968
--dearmor
6069
--file ${artifact}
61-
--signer {{ .Env.SIGNER }}
6270
--out ${signature}
6371
artifacts: checksum
6472
# Signature file with GPG Public Key ID in filename (i.e. terraform-provider-awscc_VERSION_SHA256SUMS.7685B676.sig)
@@ -72,7 +80,6 @@ signs:
7280
sign
7381
--dearmor
7482
--file ${artifact}
75-
--signer {{ .Env.SIGNER }}
7683
--out ${signature}
7784
artifacts: checksum
7885
snapshot:

terraform-registry-manifest.json

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"version": 1,
3+
"metadata": {
4+
"protocol_versions": ["5.0"]
5+
}
6+
}

0 commit comments

Comments
 (0)