* feat: annotated tag body
this adds another template variable, `TagBody`, with the body of the annotated tag/commit message only.
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* refactor: tag contents
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: expose .PreviousTag
* fix: previous tag will never be a commit
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: tests
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* docs: tag
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: tag sorting
When the HEAD commit has multiple tags, they are sorted in order to select the latest so that it can be released.
However, the existing sort would not work if there were multiple commits across a Wednesday and a Thursday.
For example:
```
git tag --points-at HEAD --format='%(creatordate)%09%(refname)'
Wed Jul 28 07:13:19 2021 +0000 refs/tags/v0.0.183
Thu Jul 29 13:31:07 2021 +0000 refs/tags/v0.0.184
Thu Jul 29 13:38:42 2021 +0000 refs/tags/v0.0.185
Thu Jul 29 13:57:44 2021 +0000 refs/tags/v0.0.186
```
When using the existing sort the `creatordate` field was targeted and reversed. Alphabetically Thursday comes before Wednesday, so that is reversed and the Wednesday release always comes first:
```
git tag --points-at HEAD --sort=-version:creatordate --format='%(creatordate)%09%(refname)'
Wed Jul 28 07:13:19 2021 +0000 refs/tags/v0.0.183
Thu Jul 29 13:57:44 2021 +0000 refs/tags/v0.0.186
Thu Jul 29 13:38:42 2021 +0000 refs/tags/v0.0.185
Thu Jul 29 13:31:07 2021 +0000 refs/tags/v0.0.184
```
This would make goreleaser attempt to release that existing tag again, and fail.
If we instead sort by reversed `refname` we get the tags ordered by their numeric value, which ignore the day of the week of release:
```
git tag --points-at HEAD --sort=-version:refname --format='%(creatordate)%09%(refname)'
Thu Jul 29 13:57:44 2021 +0000 refs/tags/v0.0.186
Thu Jul 29 13:38:42 2021 +0000 refs/tags/v0.0.185
Thu Jul 29 13:31:07 2021 +0000 refs/tags/v0.0.184
Wed Jul 28 07:13:19 2021 +0000 refs/tags/v0.0.183
```
Allowing the latest version, 0.0.186 in this case, to be targeted for release.
* corrected test case
* add space
* remove space
* feat: --auto-snapshot
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* docs: fix
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: workflow
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: fail on shallow clone
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: typo
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* refactor: use t.Cleanup instead of defer
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* refactor: use t.Cleanup instead of defer
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* refactor: use t.Cleanup instead of defer
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* refactor: use t.Cleanup instead of defer
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: filepath
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
Add a `.Branch` field to the text templates populated by the current git
branch.
Signed-off-by: Ben Kochie <superq@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* refactor: use require on all tests
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* refactor: use require on all tests
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Make checksum ordering consistent
* Use consistent time for build date
* Add commit date to templates
* Add config option for build mod timestamp
* Make goreleaser builds reproducible
* Fix error in wording
* Update www/docs/customization/build.md
* chore(deps): bump github.com/golangci/golangci-lint from 1.23.7 to 1.27.0
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: tests
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix(git): Use CI envronment variables to figure out tag
This patch detects CI environments and uses the available tag information when
collecting the git tag.
This resolves issues where one commit has multiple tags.
Closes#1163Closes#1311
* Update www/content/release.md
Co-Authored-By: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* Update www/content/release.md
Co-Authored-By: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* Update www/content/build.md
Co-Authored-By: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* Update www/content/release.md
Co-Authored-By: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* feat(doc): Document git tag override in environment
Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>