1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-07-03 00:57:43 +02:00

45 Commits

Author SHA1 Message Date
ec2db4a727 feat!: rename module to /v2 (#4894)
<!--

Hi, thanks for contributing!

Please make sure you read our CONTRIBUTING guide.

Also, add tests and the respective documentation changes as well.

-->


<!-- If applied, this commit will... -->

...

<!-- Why is this change being made? -->

...

<!-- # Provide links to any relevant tickets, URLs or other resources
-->

...

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-05-26 15:02:57 -03:00
305663fb5d test: simplify error asserts with require.ErrorContains (#4640)
The PR refactors tests:
- change two lines `require.Error + require.Contains` with one
`require.ErrorContains`;
- change `require.Error + require.Equal` with `require.EqualError`.
2024-02-19 16:28:06 -03:00
41ce3c0304 fix: git.ignore_tags not working (#4322)
also regex is not possible there currenctly, didnt realized it at the
time

refs #4255

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-09-23 02:37:48 -03:00
0fe02a136a fix(git): ignore_tags should ignore empty 2023-09-17 17:03:02 +00:00
622c426eb3 refactor: --skip=item (#4272)
Laying the ground work to allow skipping more pipes without adding new
flags et al.

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-09-16 17:01:20 -03:00
ecdbf5877c feat: git.ignore_tags (#4255)
Allows to ignore tags that match the given regex expressions.
2023-08-27 15:57:03 -03:00
73e59160de test: use t.Setenv to set env vars (#4140)
We have been using `t.Setenv` is most of our tests. This PR replaces the
remaining `os.Setenv` with `t.Setenv`.

Reference: https://pkg.go.dev/testing#T.Setenv

```go
func TestFoo(t *testing.T) {
	// before
	os.Setenv(key, "new value")
	defer os.Unsetenv(key)
	
	// after
	t.Setenv(key, "new value")
}
```

---------

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2023-06-25 09:54:10 -03:00
4330b522ea feat: IsGitDirty template variable (#3967)
will only ever be true on snapshots or when ran with `--skip-validate`.
This should be useful as a ldflag, for example.
2023-05-02 01:04:18 -03:00
8877fe1ef4 feat: include prerelease suffix in git (#3841)
<!--

Hi, thanks for contributing!

Please make sure you read our CONTRIBUTING guide.

Also, add tests and the respective documentation changes as well.

-->


<!-- If applied, this commit will... -->

This commit will fix bad version tag sort if there is a prerelease on
the same commit as a release tag. Current output is shown below
```
❯ git tag --points-at HEAD --sort=-version:refname --format='%(creatordate)%09%(refname)'
Thu Mar 2 21:38:51 2023 +0300   refs/tags/v1.13.0-rc3
Thu Mar 2 21:38:51 2023 +0300   refs/tags/v1.13.0
```
Test is changed to match current default value so it will fail without
this fix.

Default value `-` is set to the one that is described inside
[docs](https://goreleaser.com/how-it-works/?h=prerelease#how-it-works),
but people are still allowed to change it.

Output with fix applied
```
❯ git -c versionsort.suffix=- tag --points-at HEAD --sort -version:refname --format='%(creatordate)%09%(refname)'
Thu Mar 2 21:38:51 2023 +0300   refs/tags/v1.13.0
Thu Mar 2 21:38:51 2023 +0300   refs/tags/v1.13.0-rc3
```

<!-- # Provide links to any relevant tickets, URLs or other resources
-->
More info about `versionsort.suffix` can be found
[here](https://github.com/git/git/blob/master/Documentation/config/versionsort.txt#L5)

Docs as well both schemas are updated as well.

I am not sure if users should be allowed to change this option at all.
2023-03-19 22:19:40 -03:00
f544c5ce69 test: testctx pkg (#3807)
alternative to #3806 

the idea is that both `context.New` and `context.Context{}` are never
used in tests.

not sure yet how much I like it, so far code does look a bit more
readable though.

---------

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-02 00:01:11 -03:00
da2335791a fix: native changeloger without previous tag (#3668)
closes #3662

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-12-29 10:41:59 -03:00
f5696d01ee feat: custom tag.sort (#3611)
closes #3609

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-12-02 21:50:04 -03:00
f90df0f5ec fix: getting previous tag
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-10-17 22:39:32 -03:00
e9a54ce40b test: fixed a broken test
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-09-18 14:21:33 -03:00
5a6dd2fbc8 test: reducing test ouput (#3222)
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-07-04 21:13:10 -03:00
ce9058ac8c refactor: use context on git exec calls (#3032) 2022-04-12 08:35:19 -03:00
d295d0bdff feat: annotated tag body (#2923)
* 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>
2022-02-24 22:57:51 -03:00
f01c60026c fix: improve git tag contents output
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-12-06 17:21:37 -03:00
6ea7fb792a feat: annotated tag contents (#2744)
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-12-06 16:52:26 -03:00
9b9eef04a2 feat: get annotated tag message (#2730)
refs  #2726

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-12-05 23:23:15 -03:00
e8fca30104 refactor: remove unused git.RunEnv (#2706)
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-11-28 00:22:44 -03:00
274ffae03c feat: add git summary support (aka git describe --dirty --tags --always) (#2700)
* feat: add git summary support (aka git describe --dirty --tags --always)

* feat: update documentation for new summary template variable

* test: add tests for new summary feature
2021-11-25 03:01:56 +00:00
cd261a527a feat: allow to use .PreviousTag on templates (#2683)
* 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>
2021-11-24 09:12:24 -03:00
5a01a10f9b fix: clean user information from remote url if it contains username and token (#2457) 2021-09-03 20:06:53 -03:00
18695c2687 fix: sort tags by version not day of the week (#2377)
* 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
2021-08-02 16:20:09 +00:00
5866b9cb63 refactor: use os and io packages intead of ioutil when possible (#2189) 2021-04-25 13:00:51 -03:00
66117f3126 fix: several fd leaks (on tests) (#2187) 2021-04-25 11:34:40 -03:00
be4049e6d8 fix: move shallow clone error to warning
refs #2141 #2134

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2021-03-24 23:17:40 -03:00
d04a7dad19 feat: fail on shallow clone (#2135)
* 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>
2021-03-24 08:55:13 -03:00
f10873d919 Revert "feat: allow automatic snapshot on dirty state (#1958)" (#1962)
This reverts commit d8a0f253d1.
2020-12-22 11:04:51 -03:00
d8a0f253d1 feat: allow automatic snapshot on dirty state (#1958)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2020-12-22 10:41:08 -03:00
92f52ac406 refactor(test): use testing.TB Cleanup and Tempdir (#1945)
* 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>
2020-12-12 13:27:35 -03:00
f417d7783d feat: add support for git branch in templates (#1906)
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>
2020-11-18 18:50:31 +00:00
979f8632b7 refactor: use require on all tests (#1839)
* 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>
2020-10-06 12:48:04 +00:00
0d4f605388 feat: deterministic / reproducible build support (#1641)
* 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
2020-07-06 17:09:22 -03:00
ca3a63a537 feat: use CI environment variables to figure out tag (#1327)
* 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 #1163
Closes #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>
2020-01-31 15:38:56 -03:00
4e71977e34 Revert "feat: git diff when dirty (#1178)"
This reverts commit 39d07c375d.
2019-10-20 11:10:31 -03:00
39d07c375d feat: git diff when dirty (#1178)
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2019-10-06 17:56:53 -03:00
1a971c0d9a test: fixed git dirty test 2019-04-14 14:41:24 -03:00
a31abde2e9 clean: remove uneeded extra tag check 2019-01-19 17:33:33 -02:00
07d9855890 fix: tests 2018-12-13 12:11:12 -02:00
a69ef61d60 fix: snapshot version handling 2018-12-13 12:11:12 -02:00
5c63f88290 test: add more tests 2018-10-04 23:23:31 -03:00
748d97ef22 feat: git remote url in the template engine 2018-10-04 23:23:31 -03:00
39de856eb4 refactor: better package organization 2018-09-12 14:18:01 -03:00