GitHub Action for GoReleaser
name: goreleaser
on:
pull_request:
push:
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.13
-
name: Run GoReleaser
uses: goreleaser/goreleaser-action@v1
with:
version: latest
args: release --rm-dist
key: ${{ secrets.YOUR_PRIVATE_KEY }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}IMPORTANT: note the
Unshallowstep. It is required for the changelog to work correctly.
If you want to run GoReleaser only on new tag, you can use this event:
on:
push:
tags:
- '*'Or with a condition on GoReleaser step:
-
name: Run GoReleaser
uses: goreleaser/goreleaser-action@v1
if: startsWith(github.ref, 'refs/tags/')
with:
version: latest
args: release --rm-dist
key: ${{ secrets.YOUR_PRIVATE_KEY }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}For detailed instructions please follow GitHub Actions workflow syntax.
Following inputs can be used as step.with keys
| Name | Type | Default | Description |
|---|---|---|---|
version |
String | latest |
GoReleaser version. Example: v0.117.0 |
args |
String | Arguments to pass to GoReleaser | |
key |
String | Private key to import | |
workdir |
String | . |
Working directory (below repository root) |
Following environment variables can be used as step.env keys
| Name | Description |
|---|---|
GITHUB_TOKEN |
GITHUB_TOKEN as provided by secrets |
GITHUB_TOKEN permissions are limited to the repository
that contains your workflow.
If you need to push the homebrew tap to another repository, you must therefore create a custom Personal Access Token
with repo permissions and add it as a secret in the repository. If you create a
secret named GH_PAT, the step will look like this:
-
name: Run GoReleaser
uses: goreleaser/goreleaser-action@v1
with:
version: latest
args: release --rm-dist
key: ${{ secrets.YOUR_PRIVATE_KEY }}
env:
GITHUB_TOKEN: ${{ secrets.GH_PAT }}If signing is enabled in your GoReleaser configuration, populate the key input with your private key
and reference the key in your signing configuration, e.g.
signs:
- artifacts: checksum
args: ["--batch", "-u", "<key id, fingerprint, email, ...>", "--output", "${signature}", "--detach-sign", "${artifact}"]This feature is currently only compatible when using the default gpg command and a private key without a passphrase.
MIT. See LICENSE for more details.
