1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-02-11 13:38:41 +02:00

1627 Commits

Author SHA1 Message Date
Oleksandr Redko
c1f8b686db
test: add missing file.Close() calls (#5167)
This PR adds missing `file.Close()` calls in tests. All files that are
opened using `os.Open` should be closed after finishing reading.
2024-10-03 14:37:29 -03:00
Eng Zer Jun
b8aef100f2
perf(changelog): improve changelog sort performance (#5161)
This commit removes the unnecessary slice copy in `sortEntries`, and
replaces `sort.Slice` [^1] with the new `slices.SortFunc` [^2].

As recommended by the Go documentation, `slices.SortFunc` is generally
faster because it uses generic, whereas `sort.Slice` relies on
reflection, which incurs additional allocations

The benchmark result from the newly added `Benchmark_sortEntries` show
approximately a 64% performance improvement.


Benchmark result:

```
                     │   old.txt    │               new.txt               │
                     │    sec/op    │   sec/op     vs base                │
_sortEntries/asc-16    16.458µ ± 1%   5.958µ ± 1%  -63.80% (p=0.000 n=10)
_sortEntries/desc-16   17.675µ ± 1%   6.020µ ± 0%  -65.94% (p=0.000 n=10)
geomean                 17.06µ        5.989µ       -64.89%

                     │   old.txt    │               new.txt                │
                     │     B/op     │     B/op      vs base                │
_sortEntries/asc-16    3.164Ki ± 0%   1.164Ki ± 0%  -63.21% (p=0.000 n=10)
_sortEntries/desc-16   3.422Ki ± 0%   1.164Ki ± 0%  -65.98% (p=0.000 n=10)
geomean                3.290Ki        1.164Ki       -64.62%

                     │  old.txt   │              new.txt               │
                     │ allocs/op  │ allocs/op   vs base                │
_sortEntries/asc-16    68.00 ± 0%   25.00 ± 0%  -63.24% (p=0.000 n=10)
_sortEntries/desc-16   72.00 ± 0%   25.00 ± 0%  -65.28% (p=0.000 n=10)
geomean                69.97        25.00       -64.27%
```

[^1]: https://pkg.go.dev/sort#Slice
[^2]: https://pkg.go.dev/slices#SortFunc

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2024-09-30 13:27:29 -03:00
Carlos Alexandro Becker
0468da12fd
feat: default GOARM change to 7 (#5157)
Guarded by an environment variable for now.

Closes #5155
2024-09-27 13:31:29 -03:00
Carlos Alexandro Becker
ae301b3773
test: update golden files
refs 33dfbce4823a9f80854b7f063541d155260a79e0

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-09-27 10:33:17 -03:00
Leo Robinovitch
33dfbce482
fix: remove filetype exe from chocolatey template (#5159)
When submitting a new project to chocolatey using goreleaser, a reviewer
told me that a line in the template is incorrect:

<img width="1054" alt="image"
src="https://github.com/user-attachments/assets/423c4493-85fa-4cc5-8a74-97d2a561743b">

<img width="1052" alt="image"
src="https://github.com/user-attachments/assets/04425da1-eb90-4504-9308-9a2e49ca85d8">

> since that is not a valid parameter to the
Install-ChocolateyZipPackage function:
https://docs.chocolatey.org/en-us/create/functions/install-chocolateyzippackage/

This PR aims to correct that by removing the line from the template as
requested
2024-09-27 10:32:11 -03:00
James Telfer
2bdfbdcbfe
fix: signature template failed silently after signing process completed (#5148)
The presence of an artifact field in the `signature` or `certificate`
template field caused a silent failure in the template when re-applied
after the external signing process was called.

This was due to the artifact being presence in the template context
before the signing process, but not after. An error here was also
ignored.

The fix supplies the artifact to the template context, and also allows a
template failure to
fail the overall process.

As far as I can tell, this change aligns behaviour to match existing
documentation.

Fixes #5147
2024-09-23 09:14:26 -03:00
Carlos Alexandro Becker
d3f8bbf31a
fix: snapshot version template should not have the leading 'v'
closes #5142
2024-09-19 23:55:10 -03:00
Carlos Alexandro Becker
e8c2ef7735
fix: upx UnknownExecutableFormatException
closes #5141
2024-09-17 09:30:49 -03:00
Carlos Alexandro Becker
527485c58f
chore(deps): update go-github to v65
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-09-16 21:40:10 -03:00
actions-user
34974df0c6 chore: auto-update generated files 2024-09-12 19:43:42 +00:00
Julien Salleyron
40668d4382
fix(build): c-shared build and release when target is wasm (#5128)
This commit fixes the automatic extension when building the wasip1_wasm
target.

Additionally, in future Go versions, support will be added for
generating c-shared WASM binaries.
https://github.com/golang/go/issues/65199


Therefore, this PR corrects the extension in the build process and
removes the .h file from the release when c-shared is enabled and the
target is WASM.
2024-09-09 22:25:54 -03:00
Carlos Alexandro Becker
708cd8904d
feat(ko): snapshot builds (#5116)
this makes ko run on snapshot builds, too.

the image will be `goreleaser.ko.local:[your tags]`, not sure if we can
change this, seems like we can't.

also fixed a small doc error around it, as well as added a new test to
cover this.

closes #4683

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-09-07 11:15:48 -03:00
Carlos Alexandro Becker
e8da87cecb
feat(tmpl): IsSingleTarget (#5122)
refs #5024

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-09-07 11:09:21 -03:00
Carlos Alexandro Becker
301b193e6e
feat(build): templateable no_unique_dist_dir (#5115)
closes https://github.com/goreleaser/goreleaser/issues/5024

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-09-07 11:09:06 -03:00
Carlos Alexandro Becker
96c87fff72
fix: build --single-target filters (#5114)
make them more precise, as its currently only taking GOOS/GOARCH into
account, and we can do more.

closes #5112

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-09-04 10:10:27 -03:00
Carlos Alexandro Becker
05c79c9dfc
test: check if pre-requisites are installed (#5109)
closes #5104
2024-09-03 20:39:33 -03:00
Tom Payne
3a36a49984
chore: fix linter errors (#5111)
If applied, this commit will fix the current linter errors, which are
currently causing all Github Actions to fail.

See, for example, the latest `main` run:
https://github.com/goreleaser/goreleaser/actions/runs/10607661596/job/29400451251.
2024-08-30 17:03:10 -03:00
Carlos Alexandro Becker
599ce44c74
test: do not fail if missing binaries (#5107)
closes #5104

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-08-28 23:30:22 -03:00
Manuel Rüger
6272ce0e6d
fix: Handle error on failed release (github) (#5106)
When trying to release an artifact to github and it fails, I observed
the following stacktrace:
```
• publishing
    • scm releases
      • releasing                                    tag=v1.11.0 repo=my-github-repo
      • could not check rate limits, hoping for the best...
      • could not check rate limits, hoping for the best...
      • took: 1m40s
  • took: 1m40s
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xe28b72]
goroutine 55 [running]:
github.com/goreleaser/goreleaser/v2/internal/client.(*githubClient).createOrUpdateRelease(0xc0001b24c8, 0xc0002c5108, 0xc000b478, {0xc00039ed00, 0x80e})
	github.com/goreleaser/goreleaser/v2@v2.2.0/internal/client/github.go:454 +0x3b2
github.com/goreleaser/goreleaser/v2/internal/client.(*githubClient).CreateRelease(0xc0001b24c8, 0xc0002c5108, {0xc00039ed00, 0x80e})
	github.com/goreleaser/goreleaser/v2@v2.2.0/internal/client/github.go:402 +0x339
github.com/goreleaser/goreleaser/v2/internal/pipe/release.doPublish(0xc0002c5108, {0x2ce2d40, 0xc0001b24c8})
...
```

I believe this happens because if the
[CreateRelease](c96ef954c3/github/repos_releases.go (L221))
fails, resp might be empty and the resp.Header does not exist, which
causes a segfault.
```
WithField("request-id", resp.Header.Get("X-GitHub-Request-Id")).
```

Signed-off-by: Manuel Rüger <manuel@rueg.eu>
2024-08-29 00:32:27 +00:00
Carlos Alexandro Becker
5a10792f7e
chore(deps): update go-github
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-08-28 11:29:50 -03:00
Nicolás Parada
a9e0a8f112
fix(build): ignore empty flags after templating (#5103)
Ignore empty flags after templating is applied for final Go build line.

This caused us some problems since we had an `if` without `else`,
resulting in an empty flag, causing the whole build to fail with a
misleading error message like:

```
malformed import path "-myflag": leading dash
```
2024-08-27 09:06:27 -03:00
Carlos Alexandro Becker
6445e43a78
test(ko): fix chainguard image label update
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-08-26 09:12:02 -03:00
Carlos Alexandro Becker
c95bcdc1c6
chore(deps): update gocloud to v0.39.0 (#5091)
forcing `awssdk=v1` for now.

will probably need to remove that soon, holding it now only because of
https://github.com/google/go-cloud/issues/3472

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-08-18 16:58:28 -03:00
Carlos Alexandro Becker
5b87a85ee0
feat(nfpm): better support aix (#5075)
building upon the great work done at #4898


closes #4898

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Co-authored-by: Dylan Myers <dylan.myers@bluemedora.com>
2024-08-18 16:58:12 -03:00
Carlos Alexandro Becker
11aa7cfceb
feat(build): template skip (#5089)
closes #5071
2024-08-18 16:57:59 -03:00
Carlos Alexandro Becker
4e699a4caf
build: fix port error with dockertest on blob_minio_test.go (#5090)
This happened locally, doesn't seem to happen in the CI though.

Probably related to the Docker version.
2024-08-18 16:57:28 -03:00
Carlos Alexandro Becker
94a8de5347
build: use go 1.23 (#5082)
update everything to go 1.23

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-08-18 16:08:55 -03:00
Carlos Alexandro Becker
81c5a206a5
test: make test pass on go 1.23 (#5079)
not sure if this is the right solution though

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-08-15 09:38:36 -03:00
actions-user
e50b72b4a8 chore: auto-update generated files 2024-08-15 02:43:54 +00:00
Carlos Alexandro Becker
47ff67b252
feat(deps): update ko and gocloud.dev (#5063)
cyclonedx and go.version-m were removed from latest ko version

https://github.com/ko-build/ko/pull/1333

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-08-09 19:51:02 -03:00
Carlos Alexandro Becker
3ae3a098e7
fix: isEnvSet and envOrDefault not working sometimes
closes #5059
2024-08-08 10:50:37 -03:00
Carlos Alexandro Becker
5e4893234d
test: fix ko tests
the chainguard static image (used in tests) now have a bunch of labels.

this adds them to the tests.
2024-08-08 10:31:38 -03:00
Carlos Alexandro Becker
b6f9c8b9ca
feat: when --clean, remove dist before checking git state (#5057)
closes #5023
closes #5046

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-08-08 10:14:29 -03:00
Carlos Alexandro Becker
a8916c080e
feat: binary signs (#5018)
this is different from the default signs, in the sense that this will
sign the binaries even if archive mode is not set to binary.

refs https://github.com/orgs/goreleaser/discussions/4989

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-08-03 14:36:54 -03:00
Adam Bouqdib
893562ca73
fix(gitlab): release file URL broken (#5035)
<!--

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... -->

Fix the GitLab upload URL.

<!-- Why is this change being made? -->
Gitlab changed upload URLs from 
`https://gitlab.com/{user}/{repo}/uploads/{hash}/file.ext` to
`https://gitlab.com/-/project/{projectID}/uploads/{hash}/file.ext`.

To avoid future issues like this the PR
https://github.com/xanzy/go-gitlab/pull/1968 was created upstream which
adds the `full_path` field to `go-gitlab` which this PR uses.

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

Fixes https://github.com/goreleaser/goreleaser/issues/4974
2024-08-03 13:56:42 -03:00
Carlos Alexandro Becker
2de792c31d
feat: rename snapshot.name_template -> snapshot.version_template (#5019)
close #5017

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-07-29 09:21:00 -03:00
Carlos Alexandro Becker
c9398ee88c
fix: consistent logging of source archive path 2024-07-24 09:58:42 -04:00
Furkan Türkal
ce4f2ed431
fix(ko): rework error message for relative path for .go suffix (#5005)
<!--

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? -->

Even though `^\.?(\.\/[^\/]?.*)?$` was matching with `./cmd/main.go`, I
spent ~10m to figure this out why it was complaining. And noticed that,
we were returning the same error on different case, which is `HasSuffix`
check. Let's clarify the error message a bit for better UX.

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

...

Signed-off-by: Furkan <furkan.turkal@trendyol.com>
2024-07-17 10:59:39 -03:00
actions-user
c3ea906db8 chore: auto-update generated files 2024-07-14 23:38:33 +00:00
Carlos Alexandro Becker
212dbb39d4
fix: improve snapcraft configuration handling
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-07-13 14:09:46 -03:00
Carlos Alexandro Becker
2e9eefb5b9
fix(snapcraft): set confinement to strict by default 2024-07-12 10:04:25 -03:00
Carlos Alexandro Becker
33e0fc4fe2
test(nfpm): improve ipk test 2024-07-11 21:57:50 -03:00
Weston Schmidt
cc114fc8b9
feat(nfpm): add support for ipk package format (#4863)
Adds code to expose the ipk configuration values and registers the ipk
package format with nfpm.

Updates the documentation with how to use the new ipk specific
configuration parameters.

**This isn't ready to merge, but I have some questions**

1. I copied the `TestIPKSpecificConfig()`
([code](https://github.com/goreleaser/goreleaser/compare/main...schmidtw:goreleaser:main#diff-912a4af69daf4d89537b6bea43a1b7fe65683128ea1be66d6ec77046c76d064dR1358))
from the `TestAPKSpecificConfig()` and found it only is really testing
if specific scripts are there or not. Since IPK doesn't have any
additional scripts, just fields in one file do I need this test
function? Is there a better way to validate the output?
2. I have run into issues where the tests expect `goreleaser` to be the
org & repo - is there a way to override this in my fork without changing
the code?
3. Is the `ToNFPAlts()` and `ToNFP()` living in the config.go file ok?
There wasn't much code in that file, so I figured I'd ask if you'd
rather this code be elsewhere.

---------

Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-07-11 21:57:33 -03:00
Carlos Alexandro Becker
aa57879f75
chore(deps): update go-github to v63 2024-07-11 00:34:41 -03:00
Carlos Alexandro Becker
9d513696c2
fix: make latest on drafts (#4966)
this seems to fix the #4961
2024-06-29 19:42:20 -03:00
Carlos Alexandro Becker
f0b4db184e
fix: snapcraft temporary directory + concurrency (#4963)
this bug comes and goes every couple of versions it seems.

this will change the snapcraft implementation to run the first item
without concurrency, so all needed shared directories can be created
without issues, and then grows the limit of the wait group so the other
ones can run in parallel.

I haven't tested this yet, but I think it'll work.

- [x] test
- [x] godoc

refs https://github.com/goreleaser/goreleaser/issues/1715 refs
https://bugs.launchpad.net/snapcraft/+bug/1889741
2024-06-29 19:00:52 -03:00
Carlos Alexandro Becker
0f37dbd9d7
test: fix
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-06-26 08:52:22 -03:00
Carlos Alexandro Becker
9fcfaf95cf
fix: revert unwanted change 2024-06-22 23:12:01 -03:00
Carlos Alexandro Becker
0d1e3c023f
fix: moving some logs to debug 2024-06-22 22:43:57 -03:00
Carlos Alexandro Becker
afd92ffe0f
fix(github): set discussion category on publish only
It has no effect if the release is a draft, and seems to be ignored
later when published.

Move setting the discussion category to the publish method only.

Closes https://github.com/orgs/goreleaser/discussions/4902
2024-06-15 15:48:05 -03:00