1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-07-13 01:30:50 +02:00

96 Commits

Author SHA1 Message Date
a7b8cb0a4c fix: targets 2024-12-01 18:36:17 -03:00
79d89cb0ec fix: better error handling 2024-12-01 17:52:13 -03:00
003e41cb77 feat(build): rust support 2024-12-01 15:06:42 -03:00
09be848e1a feat(build): initial support for zig (#5312)
Continuing on #5308 and #5307, this finally adds Zig support to
GoReleaser!

Things are very raw still, plenty of use cases to test (please do test
on your project if you can), but it does work at least for simple
projects!

A release done by this:
https://github.com/goreleaser/example-zig/releases/tag/v0.1.0

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-11-28 08:47:20 -03:00
d43f84aa3f refactor(build): preparing to support multiple languages (#5307)
This starts laying the foundation for supporting more languages, the
first of which will probably be Zig, and then Rust.

I already have a zig prototype working in another branch, just raw
dogged it to see if it would work, and since it does, now I'll do it
piece by piece but with hopefully slightly better code.
2024-11-25 23:00:28 -03:00
bb438ba34e test: fix build test 2024-11-16 11:14:59 -03:00
3c55f2bb77 test: improving tests on windows
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-11-16 10:57:48 -03:00
2bf08f11a6 ci: run build/test workflow on windows too (#5263)
Maybe 3rd time is the charm!

This makes the CI build run on windows too, and fix broken tests/featuers on Windows.

Most of the changes are related to ignoring certain tests on windows, or making sure to use the right path separators.

More work to do in the future, probably!

#4293

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-11-16 10:30:39 -03:00
66db8c0857 fix: build 386 2024-10-15 15:28:52 -03:00
d583861e06 feat(build): add GO386, GOMIPS64, GORISCV64, and GOPPC64 support (#5186)
continuing the work of #5153

closes #5153

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Co-authored-by: 世界 <i@sekai.icu>
2024-10-14 09:40:10 -03:00
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
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
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
11aa7cfceb feat(build): template skip (#5089)
closes #5071
2024-08-18 16:57:59 -03:00
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
4fa8df6413 feat!: v2 (#4806)
BREAKING CHANGE

removed all deprecated options, config file should now have a `version:
2` bit


![Dont
Matter](https://github.com/goreleaser/goreleaser/assets/245435/31ece16a-cb70-4e43-9caa-8364e73fbeb9)

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-05-25 14:09:49 -03:00
00a376cc64 refactor: remove unneeded in Go 1.22 loop var copy (#4856)
The PR cleans up unnecessary loop variable copying and enables the
[`copyloopvar`](https://golangci-lint.run/usage/linters/#copyloopvar)
linter for detecting this redundant variable copying.

#### Additional notes

After the project upgraded to Go version 1.22 in #4779, copying
variables inside a `for` loop became unnecessary. See this [blog
post](https://go.dev/blog/loopvar-preview) for a detailed explanation.

The `copyloopvar` linter is only available from `golangci-lint` v1.57
onwards, so we also need to update this tool.
2024-05-12 13:21:13 -03:00
280e68431a test: move test to the right package
refs c9068b4b3c

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-03-17 14:43:21 -03:00
c9068b4b3c fix: properly template builds.gobinary
closes #4685
2024-03-16 11:50:51 -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
ccd8c55b4f test: run testifylint -fix (#4483)
fix a bunch of tests

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-12-17 15:34:28 -03:00
22fa9947c8 feat: allow to template builds.gobinary (#4454)
closes #4453

TODO: tests
2023-12-04 23:00:11 -03:00
d0d088dee7 test: fix 2023-11-29 22:40:10 -03:00
1ec5245f51 test: improve brittle tests 2023-11-29 22:25:14 -03:00
25a054c5e1 feat: improve --single-target (#4442)
closes #4437 
closes #4426

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-11-27 18:29:50 -03:00
16d84c5973 feat: skip pre build hooks 2023-09-17 16:59:34 +00:00
d90c2ca2f2 fix: skip post-hook on universal binaries as well
closes #4278
2023-09-17 16:56:26 +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
c91c4b7cd8 feat: improve template error handling (#4256)
- wrap the multiple errors in an internal error with cleaner messaging
- improve testlib.RequireTemplateError and several tests
2023-08-24 22:06:12 -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
bad7984962 test: improve executable not found checks (#4119)
extracted from #3795
2023-06-15 23:51:07 -03:00
a459911f45 fix: many linting issues
refs #3874

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-19 22:17:18 -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
99ae082237 feat: finally deprecate the single build option (#3758)
This option was still being supported, even though undocumented, for
many years now.

I think it's finally time to sunset it for good, in 6 months :)

---------

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-02-09 08:56:37 -03:00
1b8395d6b6 feat(build): allow to template env (#3592)
GoReleaser evolved a lot since the last time I tried to implement this
>1 year ago.
Now its 100% possible, and way simpler to do it!

closes #3580
refs #2583

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-11-25 15:26:29 -03:00
b66568529d feat: add windows to default builds (#3581)
Resolves #3579

Signed-off-by: jolheiser <john.olheiser@gmail.com>
2022-11-24 15:48:37 -03:00
22a7a9a835 refactor: small improvements
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-11-11 23:42:52 -03:00
0a536f08fd feat: build of shared/static libraries (#3511)
<!--

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 PR improves the handling of shared or static libraries by
GoReleaser. It uses the default behaviour of the Go compiler by
appending the right extension to libraries.

* `.so` and `.a` for Linux shared libraries and static libraries
respectively
* `.dylib` and `.a.` on Darwin
* `.dll` and `.lib` on Windows (pre-existent)

It does not add any configuration option to `.goreleaser.yml`, since it
leverages the existing `buildmode` flag.

Additionally, this PR takes care of adding the generated header file
into the archive.

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

Personally I would leverage this change to release some software both as
a CLI and as a shared library. I believe others who use CGo or need
interoperability with Go from other languages could benefit from this.

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

This was previously discussed in #3497.

I couldn't quite think of a proper way to add some tests to the header
archiving feature. Any recommendation?
2022-11-11 23:35:51 -03:00
1d72e963f4 feat: allow parallelism by build target (#3213)
* Trying to fix parallelism on multiple builds issue

https://github.com/goreleaser/goreleaser/issues/3209

* bugfixing

* Update internal/pipe/build/build_test.go

Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* Update internal/pipe/build/build_test.go

Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* Update internal/pipe/build/build_test.go

Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: gofumpt

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

Co-authored-by: JD <jdpcbs@gmail.com>
2022-06-29 00:31:33 -03:00
f75d64d6cc feat: allow to override env for a target (#3201)
* feat: allow to override env for a target

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: dupe key

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* test: fixes

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-06-26 22:00:55 -03:00
fe7e2123bd feat: replacing the log library (#3139)
* feat: replacing logs

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: tests et al

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* feat: update termenv/lipgloss

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* wip: output

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: pin dep

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: update

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: tests

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: tests

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: deps

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: dep

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-06-21 21:11:15 -03:00
17e4d62791 fix: revert defaulting build.id to build.binary
refs #3098
refs #3063

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-05-11 11:42:37 -03:00
5aeb8ace61 fix: prevent folder collisions in builds and universal binaries (#3063)
- on universal binaries, use the build id instead of the binary name to
  create the folder in the dist folder
- on builds, default the id the to the binary name instead of project
  name. The binary name already defaults to the project id if empty, so
  this should only prevent having to specify the id + binary name in
  some cases.

closes #3061

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-04-25 22:07:14 -03:00
63436392db fix: custom targets if missing goamd64, goarm, gomips (#3056)
* fix: custom targets if missing goamd64, goarm, gomips

if the user provide custom targets without the goamd64, goarm or gomips bit, things may go awry at some point.

this prevents issues by suffixing them with the default when its missing.

closes https://github.com/goreleaser/goreleaser/issues/3055

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* test: fix build tests

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-04-20 09:43:39 -03:00
3663ec1b13 test: goamd64 tests
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-04-15 23:26:25 -03:00
b0583c700b feat: support GOAMD64 (#3016)
* feat: support GOAMD64

* fix: test

* wip

* wip: docker et al

* fix: archive format name

* test: added new test

* feat: nfpm amd4, mips et al

* chore: rm unused file

* fix: brew for multiple goamd64

* fix: krew

* feat: aur

* feat: krew

* docs: brew

* feat: gofis

* feat: scoop

* fix: docker filters

* fix: snapcraft

* fix: improve diff a bit

* fix: snapcraft name template
2022-04-11 22:43:22 -03:00
9df62d87ec fix: build log print relative path instead of abs
all other logs print relative paths, only the build logs are printing the abs path.

this makes things more even.

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-02-05 17:44:07 -03:00
efdc4d0f48 test: fixed hooks tests
refs #2875
refs f585f3be69

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-02-05 16:28:17 -03:00
f585f3be69 feat: allow to output on hooks
refs #2875
2022-02-05 16:00:49 -03:00
1bdfc9cdff feat: allow to override build flags by goos/goarch/etc (#2860)
* feat: allow to override build flags by goos/goarch/etc

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* test: improve

* fix: typos

* feat: templates, merges

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* test: fix

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* test: one more case

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* Update internal/builders/golang/build.go

Co-authored-by: Brian Flad <bflad417@gmail.com>

* Update internal/builders/golang/build.go

Co-authored-by: Brian Flad <bflad417@gmail.com>

* test: more tests

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

Co-authored-by: Brian Flad <bflad417@gmail.com>
2022-02-02 00:01:34 -03:00