Skip to content

Commit f35f404

Browse files
authored
Merge pull request #1 from livestorm/rel-30-upgrade-all-terraform-repositories-to
feat(GoRelease): Add Publish To Registry
2 parents a5ead1b + a4abb02 commit f35f404

File tree

3 files changed

+99
-46
lines changed

3 files changed

+99
-46
lines changed

.github/workflows/release.yaml

-46
This file was deleted.

.github/workflows/release.yml

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# This GitHub action can publish assets for release when a tag is created.
2+
# Currently its setup to run on any tag that matches the pattern "v*" (ie. v0.1.0).
3+
#
4+
# This uses an action (hashicorp/ghaction-import-gpg) that assumes you set your
5+
# private key in the `GPG_PRIVATE_KEY` secret and passphrase in the `PASSPHRASE`
6+
# secret. If you would rather own your own GPG handling, please fork this action
7+
# or use an alternative one for key handling.
8+
#
9+
# You will need to pass the `--batch` flag to `gpg` in your signing step
10+
# in `goreleaser` to indicate this is being used in a non-interactive mode.
11+
#
12+
name: release
13+
on:
14+
push:
15+
tags:
16+
- 'v*'
17+
jobs:
18+
goreleaser:
19+
runs-on: ubuntu-latest
20+
steps:
21+
-
22+
name: Checkout
23+
uses: actions/checkout@v2
24+
-
25+
name: Unshallow
26+
run: git fetch --prune --unshallow
27+
-
28+
name: Set up Go
29+
uses: actions/setup-go@v2
30+
with:
31+
go-version: 1.16
32+
-
33+
name: Import GPG key
34+
id: import_gpg
35+
uses: hashicorp/[email protected]
36+
env:
37+
# These secrets will need to be configured for the repository:
38+
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
39+
PASSPHRASE: ${{ secrets.PASSPHRASE }}
40+
-
41+
name: Run GoReleaser
42+
uses: goreleaser/goreleaser-action@v2
43+
with:
44+
version: latest
45+
args: release --rm-dist
46+
env:
47+
GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }}
48+
# GitHub sets this automatically
49+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.goreleaser.yml

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Visit https://goreleaser.com for documentation on how to customize this
2+
# behavior.
3+
builds:
4+
- env:
5+
# goreleaser does not work with CGO, it could also complicate
6+
# usage by users in CI/CD systems like Terraform Cloud where
7+
# they are unable to install libraries.
8+
- CGO_ENABLED=0
9+
mod_timestamp: '{{ .CommitTimestamp }}'
10+
flags:
11+
- -trimpath
12+
ldflags:
13+
- '-s -w -X main.version={{.Version}} -X main.commit={{.Commit}}'
14+
goos:
15+
- freebsd
16+
- windows
17+
- linux
18+
- darwin
19+
goarch:
20+
- amd64
21+
- '386'
22+
- arm
23+
- arm64
24+
ignore:
25+
- goos: darwin
26+
goarch: '386'
27+
binary: '{{ .ProjectName }}_v{{ .Version }}'
28+
archives:
29+
- format: zip
30+
name_template: '{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}'
31+
checksum:
32+
name_template: '{{ .ProjectName }}_{{ .Version }}_SHA256SUMS'
33+
algorithm: sha256
34+
signs:
35+
- artifacts: checksum
36+
args:
37+
# if you are using this in a GitHub action or some other automated pipeline, you
38+
# need to pass the batch flag to indicate its not interactive.
39+
- "--batch"
40+
- "--local-user"
41+
- "{{ .Env.GPG_FINGERPRINT }}" # set this environment variable for your signing key
42+
- "--output"
43+
- "${signature}"
44+
- "--detach-sign"
45+
- "${artifact}"
46+
release:
47+
# If you want to manually examine the release before its live, uncomment this line:
48+
# draft: true
49+
changelog:
50+
skip: true

0 commit comments

Comments
 (0)