From d7a29e026c533b0a00a263fdd589fc7c5f37b9c7 Mon Sep 17 00:00:00 2001 From: Michael van Tellingen Date: Sat, 29 Aug 2020 12:37:09 +0200 Subject: [PATCH] Update goreleaser and add workflow to create a release --- .github/workflows/release.yml | 31 ++++++++++++++++++++ .goreleaser.yml | 53 ++++++++++++++++++++++++----------- 2 files changed, 67 insertions(+), 17 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 0000000..3b65d7c --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,31 @@ +name: release +on: + push: + tags: + - 'v*' +jobs: + goreleaser: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Unshallow + run: git fetch --prune --unshallow + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.14 + - name: Import GPG key + id: import_gpg + uses: paultyng/ghaction-import-gpg@v2.1.0 + env: + GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} + PASSPHRASE: ${{ secrets.PASSPHRASE }} + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v2 + with: + version: latest + args: release --rm-dist + env: + GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.goreleaser.yml b/.goreleaser.yml index d6c7388..c3ba678 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -1,25 +1,31 @@ project_name: terraform-provider-sonarqube builds: - - binary: terraform-provider-sonarqube_v{{ .Version }} - env: - - CGO_ENABLED=0 - goos: - - windows - - darwin - - linux - goarch: - - amd64 +- env: + # goreleaser does not work with CGO, it could also complicate + # usage by users in CI/CD systems like Terraform Cloud where + # they are unable to install libraries. + - CGO_ENABLED=0 + mod_timestamp: '{{ .CommitTimestamp }}' + flags: + - -trimpath + ldflags: + - '-s -w -X main.version={{.Version}} -X main.commit={{.Commit}}' + goos: + - windows + - linux + - darwin + goarch: + - amd64 + binary: '{{ .ProjectName }}_v{{ .Version }}' archives: - - name_template: "terraform-provider-sonarqube-{{ .Version }}-{{ .Os }}-{{ .Arch }}" - format_overrides: - - goos: windows - format: zip - - goos: darwin - format: zip - files: - - none* +- format: zip + name_template: '{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}' + +checksum: + name_template: '{{ .ProjectName }}_{{ .Version }}_SHA256SUMS' + algorithm: sha256 changelog: sort: asc @@ -27,3 +33,16 @@ changelog: exclude: - "^docs:" - "^test:" + +signs: + - artifacts: checksum + args: + # if you are using this is a GitHub action or some other automated pipeline, you + # need to pass the batch flag to indicate its not interactive. + - "--batch" + - "--local-user" + - "{{ .Env.GPG_FINGERPRINT }}" # set this environment variable for your signing key + - "--output" + - "${signature}" + - "--detach-sign" + - "${artifact}"