1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-01-24 04:16:27 +02:00
goreleaser/docs/115-release.md
Matt Stratton e2ee7c4b2f
feat: Add ability to specify release name
Signed-off-by: Matt Stratton <matt.stratton@gmail.com>
2017-10-07 05:49:58 -05:00

1.4 KiB

title
Releasing

GoReleaser will create a release in GitHub with the current tag, upload all the archives and checksums, also generate a changelog from the commits new since the last tag.

Let's see what can be customized in the release section:

# .goreleaser.yml
release:
  # Repo in which the release will be created.
  # Default is extracted from the origin remote URL.
  github:
    owner: user
    name: repo

  # If set to true, will not auto-publish the release.
  # Default is false.
  draft: true

  # If set to true, will mark the release as not ready for production.
  # Default is false.
  prerelease: true

  # Optional template to name the release
  # Default is the version number
  name_template: "{{.ProjectName}}-v{{.Version}}"

Custom release notes

You can specify a file containing your custom release notes, and pass it with the --release-notes=FILE flag. GoReleaser will then skip its own release notes generation, using the contents of your file instead. You can use Markdown to format the contents of your file.

On Unix systems you can also generate the release notes in-line by using process substitution. To list all commits since the last tag, but skip ones starting with Merge or docs, you could run this command:

goreleaser --release-notes <(git log --pretty=oneline --abbrev-commit $(git describe --tags --abbrev=0)^.. | grep -v '^[^ ]* \(Merge\|docs\)')