GoReleaser Logo

GoReleaser Action

GitHub Action for GoReleaser

GitHub release GitHub marketplace Test workflow Become a sponsor

--- ![GoRelease Action](.github/goreleaser-action.png) ## Usage ```yaml 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 `Unshallow` 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: ```yaml on: push: tags: - '*' ``` Or with a condition on GoReleaser step: ```yaml - 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](https://help.github.com/en/articles/workflow-syntax-for-github-actions#About-yaml-syntax-for-workflows). ## 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. ```yaml signs: - artifacts: checksum args: ["--batch", "-u", "", "--output", "${signature}", "--detach-sign", "${artifact}"] ``` This feature is currently only compatible when using the default `gpg` command and a private key without a passphrase. ## License MIT. See `LICENSE` for more details.