From 21cf008661e0737f4dee4e2915616f11094526e8 Mon Sep 17 00:00:00 2001 From: Francis Chuang Date: Mon, 13 Mar 2023 10:10:25 +1100 Subject: [PATCH] Add release workflow to allow us to publish our fork --- .github/workflows/release.yml | 51 +++++++++++++++++++++++++++++++++++ .goreleaser.yml | 20 +++++--------- 2 files changed, 57 insertions(+), 14 deletions(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000000..451d83cdb2b --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,51 @@ +# This GitHub action can publish assets for release when a tag is created. +# Currently its setup to run on any tag that matches the pattern "v*" (ie. v0.1.0). +# +# This uses an action (crazy-max/ghaction-import-gpg) that assumes you set your +# private key in the `GPG_PRIVATE_KEY` secret and passphrase in the `PASSPHRASE` +# secret. If you would rather own your own GPG handling, please fork this action +# or use an alternative one for key handling. +# +# You will need to pass the `--batch` flag to `gpg` in your signing step +# in `goreleaser` to indicate this is being used in a non-interactive mode. +# +name: release +on: + push: + tags: + - 'v*' +permissions: + contents: write +jobs: + goreleaser: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 + - + name: Unshallow + run: git fetch --prune --unshallow + - + name: Set up Go + uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568 # v3.5.0 + with: + go-version-file: 'go.mod' + cache: true + - + name: Import GPG key + uses: crazy-max/ghaction-import-gpg@111c56156bcc6918c056dbef52164cfa583dc549 # v5.2.0 + id: import_gpg + with: + gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} + passphrase: ${{ secrets.PASSPHRASE }} + - + name: Run GoReleaser + uses: goreleaser/goreleaser-action@f82d6c1c344bcacabba2c841718984797f664a6b # v4.2.0 + with: + version: latest + args: release --rm-dist --timeout 3h --parallelism 4 + env: + GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }} + # GitHub sets this automatically + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.goreleaser.yml b/.goreleaser.yml index 449bf9f23d5..c8eec7b632e 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -1,3 +1,6 @@ +# Copyright (c) HashiCorp, Inc. +# SPDX-License-Identifier: MPL-2.0 + # Visit https://goreleaser.com for documentation on how to customize this # behavior. before: @@ -16,18 +19,9 @@ builds: ldflags: - '-s -w -X main.version={{.Version}} -X main.commit={{.Commit}}' goos: - - freebsd - - windows - linux - - darwin goarch: - amd64 - - '386' - - arm - - arm64 - ignore: - - goos: darwin - goarch: '386' binary: '{{ .ProjectName }}_v{{ .Version }}' archives: - format: zip @@ -46,15 +40,13 @@ signs: - "--batch" - "--local-user" - "{{ .Env.GPG_FINGERPRINT }}" # set this environment variable for your signing key - - "--passphrase" - - "{{ .Env.GPG_PASSPHRASE }}" #set this environment variable for your signing key - "--output" - "${signature}" - "--detach-sign" - "${artifact}" release: github: - owner: oracle + owner: F21 name: terraform-provider-oci extra_files: - glob: 'terraform-registry-manifest.json' @@ -62,6 +54,6 @@ release: # If you want to manually examine the release before its live, uncomment this line: # draft: true changelog: - skip: false + skip: true -project_name: terraform-provider-oci \ No newline at end of file +project_name: terraform-provider-oci