Skip to content

Commit

Permalink
build: rework build/release pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
jooola committed Nov 3, 2023
1 parent a856c06 commit 60df99b
Show file tree
Hide file tree
Showing 7 changed files with 108 additions and 386 deletions.
24 changes: 0 additions & 24 deletions .github/actions/build-and-persist-plugin-binary/action.yml

This file was deleted.

36 changes: 36 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

# 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).

name: Build

on:
push:
branches: [main]
pull_request:

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- uses: actions/setup-go@v4
with:
go-version: "1.20"

- uses: goreleaser/goreleaser-action@v4
with:
version: latest
args: release --clean --timeout 120m --snapshot
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- uses: actions/upload-artifact@v3
if: github.event_name == 'push'
with:
path: dist/build_*/*
146 changes: 0 additions & 146 deletions .github/workflows/build_plugin_binaries.yml

This file was deleted.

46 changes: 0 additions & 46 deletions .github/workflows/notify-integration-release-via-manual.yaml

This file was deleted.

52 changes: 0 additions & 52 deletions .github/workflows/notify-integration-release-via-tag.yaml

This file was deleted.

62 changes: 30 additions & 32 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,57 +3,55 @@

# 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 (hashicorp/ghaction-import-gpg) that assumes you set your
# private key in the `GPG_PRIVATE_KEY` secret and passphrase in the `GPG_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

name: Release

on:
push:
tags:
- "v*"

permissions:
contents: write
packages: read
tags: [v*]

jobs:
goreleaser:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2

- name: Unshallow
run: git fetch --prune --unshallow
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Go
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
- uses: actions/setup-go@v4
with:
go-version: "1.20"

- name: Describe plugin
id: plugin_describe
run: echo "api_version=$(go run . describe | jq -r '.api_version')" >> "$GITHUB_OUTPUT"

- name: Import GPG key
id: import_gpg
uses: crazy-max/ghaction-import-gpg@111c56156bcc6918c056dbef52164cfa583dc549 # v5.2.0
uses: crazy-max/ghaction-import-gpg@v5
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}

- name: Describe plugin api_version
id: describe_plugin
run: echo "api_version=$(go run . describe | jq -r '.api_version')" >> "$GITHUB_OUTPUT"

- name: Run GoReleaser
uses: goreleaser/goreleaser-action@f82d6c1c344bcacabba2c841718984797f664a6b # v4.2.0
uses: goreleaser/goreleaser-action@v4
with:
version: latest
args: release --clean --timeout 120m
env:
GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
API_VERSION: ${{ steps.plugin_describe.outputs.api_version }}
GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }}
API_VERSION: ${{ steps.describe_plugin.outputs.api_version }}

notify-release:
needs: [release]

runs-on: ubuntu-latest
steps:
- run: echo "RELEASE_VERSION=${GITHUB_REF_NAME#v}" >> "$GITHUB_ENV"

- uses: hashicorp/integration-release-action@main
with:
integration_identifier: packer/hetznercloud/hcloud
release_version: ${{ env.RELEASE_VERSION }}
release_sha: ${{ github.sha }}
github_token: ${{ secrets.GITHUB_TOKEN }}
Loading

0 comments on commit 60df99b

Please sign in to comment.