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

101 Commits

Author SHA1 Message Date
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
f247d7d38c feat(template): allow to use .Target (#5308)
This will also come in handy for multiple languages support (#5307).

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-11-25 23:41:00 -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
10ab79f858 fix(build): overrides without specifying goarm64 et al (#5298)
this will use the default value for GOMIPS, GOARM, GO386, and etc in
build overrides if they are not specified.

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-11-21 21:09:59 -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
8dad0d8229 docs: fix typos in comments (#5246) 2024-11-05 20:28:16 -03:00
a4ead4ba28 fix: build override consider goarm64
plus more tests
2024-11-04 08:27:09 -03:00
2b73005369 test: do not fail if not rel 2024-10-14 23:50:22 -03:00
d933d8b316 fix: first class build targets 2024-10-14 14:30:28 -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
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
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
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
9cf3bbbc5c fix(build): do not print 'go: downloading' bits of go build output (#4869)
this prevents printing `go: downloading` on go builds in case the mods
weren't previously downloaded...
2024-05-15 10:13:10 -03:00
c148106c56 docs: update old Go website links (#4855)
The PR updates the links in the docs, replacing the old `golang.org`
with the new `go.dev`.
2024-05-12 13:22:56 -03:00
eba43c289e chore: fix some comments (#4769)
fix some comments

Signed-off-by: lvyaoting <lvyaoting@outlook.com>
2024-04-08 10:08:09 -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
159211ae78 fix: add -c flags when building go test (#4473)
when building a go test without the `-c` flag like so:
```yaml
 builds:
- command: test
  binary: env.test
  dir: ./internal/builders/golang
  no_main_check: true
  ```

will result in the error: `exit status 1: fork/exec : exec format error`

adding the -c flags when not present in the flags
adding unit test

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

---------

Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-12-12 17:41:02 -03:00
4266634752 feat: improve output (#4206)
- improves deprecation warning styles a bit so they caught the readers
eye faster and are easier to read
- warns if the user uses `builds.target` in conjunction with other
options which are ignored in that case
- improved env output
- improved no configuration found warning

some of the changes:

<img width="1263" alt="CleanShot 2023-07-24 at 21 38 41@2x"
src="https://github.com/goreleaser/goreleaser/assets/245435/40465853-7177-44d6-b07b-61b67590669a">

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-25 08:26:44 -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
6fd5fd45ea feat: improve output (#3966)
- log keys will be ordered as intended instead of sorted
- paths always relative to cwd

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-05-02 09:06:35 -03:00
82144cb2c0 test: improve file not found checkings (#3831)
using `errors.Is` everywhere, as file not found errors have different
messages on different OSes.
2023-03-04 12:16:26 -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
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
e54656438b feat: deprecate replacements (#3589)
The replacements thing was always a bit weird, especially on archives.

We can solve that with templates, so, removing I'm deprecating it.

Also did the same on other places that had it the same feature.

Closes #3588

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-11-25 15:26:14 -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
8cb4eb1654 fix: ruleguard and semgrep scans and fixes (#3364)
run semgrep-go ruleguard and semgrep scans

https://github.com/dgryski/semgrep-go

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-09-11 15:32:23 -03:00
ee17c9583d feat(ci): compile with go 1.19 (#3278)
* feat(ci): compile with go 1.19

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

* test: fixing template test

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

* test: improve check

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

* fix: more test and docs fixes

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

* test: fix

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

* test: fix

* test: fix

* fix: lint

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

* test: docker templates

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

* fix: godoc for RequireTemplateError
2022-08-06 18:44:23 -03:00
a02bcef337 test: fix unstable test
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-07-27 09:34:51 -03:00
de3f381f55 fix: build env overrides (#3232)
* fix: build env overrides

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

* fix: review

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

* test: fix

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-07-07 22:15:51 -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
69cf1aa887 feat: first class build targets (#3062)
Adds the ability to tell goreleaser to use the first-class Go ports as
targets.

Closes #3053

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-04-25 22:07:28 -03:00
30630bfc7f feat: add builds.no_main_check and builds.command (#3064)
* feat: add builds.no_main_check and builds.command

Added two more options to the builds section:
- command: allow to override the command being run. E.g. instead of
  `go build`, one could run `go test -c` by setting gobinary, command
  and flags, respectively.
- no_main_check: by default, goreleaser will fail if there's no main
  function. This option allows to disable that check.

This PR effectively make GoReleaser able to release Go test binaries
instead of just "regular" binaries.

closes #3037

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

* test: fix broken tests

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-04-25 22:07:02 -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
53bbc6546f fix: goamd64 should allow the only range from v1 to v4
It was just allowing v2 and v3 due to some misreading on my side.
This commit fixes it to allow v1, v2, v3 and v4.

refs #3016

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-04-13 21:30:08 -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
3c4e797150 feat: upgrade to go 1.18 (#2978)
* feat: upgrade to go 1.18

* chore: go mod tidy

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

* test: fix

* fix: more updates

* test: fix test
2022-03-16 21:51:48 -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
a6a6e11cc9 fix: template main with gomod.proxy (#2834)
* refactor: rename file

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

* fix: template main with gomod.proxy

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-01-14 10:33:11 -03:00
62da2dbe13 feat: no main error page (#2709)
* feat: no main error page

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

* docs: improve seo

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-11-29 21:41:31 -03:00
66cfa25f94 feat: allow to template main (#2574)
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-11-21 12:32:05 -03:00
f731173491 test: do not prefix version with v 2021-11-13 23:25:58 -03:00
01fa7a6827 refactor: organize config a bit (#2619)
* refactor: organize config a bit

* test: fix
2021-11-01 09:31:43 -03:00
df2f00fc8b refactor: put common extra keys in the artifact package (#2580)
* refactor: put common extra keys in the artifact package

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

* refactor: common extra fields have their own funcs

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

* refactor: 2 more

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

* fix: review

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-10-16 22:46:11 -03:00
d77f862fa4 refactor: improve build (#2475)
* refactor: improve build

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

* test: coverage

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2021-09-11 13:01:57 -03:00
b132d00aec fix: build dir that dont exist yet (#2435)
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2021-08-31 22:42:15 -03:00