GitHub Actions

GoReleaser can also be used within our official GoReleaser Action through GitHub Actions.

You can create a workflow for pushing your releases by putting YAML configuration to .github/workflows/release.yml.

Below is a simple snippet to use this action in your workflow:

name: goreleaser

on:
  pull_request:
  push:

jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/[email protected]
      -
        name: Unshallow
        run: git fetch --prune --unshallow
      -
        name: Set up Go
        uses: actions/[email protected]
        with:
          go-version: 1.13.x
      -
        name: Run GoReleaser
        uses: goreleaser/[email protected]
        with:
          version: latest
          args: release --rm-dist
          key: ${{ secrets.YOUR_PRIVATE_KEY }}
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

IMPORTANT: note the Unshallow workflow step. 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/[email protected]
        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.

Customizing

Inputs

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)

Signing

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.

Last updated by CrazyMax on January 26, 2020. Improve this page.