2017-09-10 22:07:28 +02:00
|
|
|
---
|
2017-10-01 18:57:52 +02:00
|
|
|
title: Releasing
|
2017-09-10 22:07:28 +02:00
|
|
|
---
|
|
|
|
|
2017-10-01 18:57:52 +02:00
|
|
|
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.
|
2017-09-10 22:07:28 +02:00
|
|
|
|
|
|
|
Let's see what can be customized in the `release` section:
|
|
|
|
|
|
|
|
```yml
|
|
|
|
# .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.
|
2017-10-01 18:57:52 +02:00
|
|
|
# Default is false.
|
2017-09-10 22:07:28 +02:00
|
|
|
draft: true
|
|
|
|
```
|
|
|
|
|
|
|
|
## Custom release notes
|
|
|
|
|
2017-10-01 18:57:52 +02:00
|
|
|
You can specify a file containing your custom release notes, and
|
|
|
|
pass it with the `--release-notes=FILE` flag.
|
2017-09-10 22:07:28 +02:00
|
|
|
GoReleaser will then skip its own release notes generation,
|
|
|
|
using the contents of your file instead.
|
2017-10-01 18:57:52 +02:00
|
|
|
You can use Markdown to format the contents of your file.
|
2017-09-30 22:37:11 +02:00
|
|
|
|
|
|
|
On Unix systems you can also generate the release notes in-line by using [process substitution](https://en.wikipedia.org/wiki/Process_substitution).
|
|
|
|
To list all commits since the last tag, but skip ones starting with `Merge` or `docs`, you could run this command:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
goreleaser --release-notes <(git log --pretty=oneline --abbrev-commit $(git describe --tags --abbrev=0)^.. | grep -v '^[^ ]* \(Merge\|docs\)')
|
|
|
|
```
|