1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-07-05 00:59:04 +02:00
Commit Graph

48 Commits

Author SHA1 Message Date
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
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
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
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
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
01fa7a6827 refactor: organize config a bit (#2619)
* refactor: organize config a bit

* test: fix
2021-11-01 09:31:43 -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
67e2dc6020 refactor: lint issues
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2021-08-21 11:11:01 -03:00
013bd69126 fix: run 'go version' command in build.Dir (#2411)
Currently, the 'goVersion' function is run without any directory set.
This is problematic when a build uses the 'dir' config in combination
with the 'gobinary' config. When 'gobinary' is a relative path (like a
script in the current repository), goVersion silently fails, returning
an empty string.

This commit refactors 'goVersion' to execute the command with '.Dir' set
to the 'build.Dir', in addition to now returning an error, so that
issues may be bubbled up in the build log, rather than silently failing.

It also adds a new helper function to facilitate running 'goVersion' by
creating a temporary executable that outputs a given 'version' string.
This function is only currently used by 'TestWithDefaults'.

Co-authored-by: Rob Prentiss <prentiss@apple.com>
2021-08-21 10:56:54 -03:00
a0dd45592e fix: packaging with build.binary with subdir
Saving again the full path of the binary in the artifact name, if needed, we can filepath.Base it and get the name only.

refs #2280
closes #2311

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-06-26 16:57:10 +00:00
c49c771220 feat: builds. no_unique_dist_dir (#2280)
* Implemented build option output_path

* feat: output path renamed to dist_path

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

* fix: CR

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

* fix: binary name

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

Co-authored-by: Thomas Meckel <tmeckel@users.noreply.github.com>
2021-06-06 19:44:24 -03:00
860b4a8f81 chore: gofumpt & lint (#2190)
Signed-off-by: Carlos Becker <caarlos0@gmail.com>
2021-04-25 14:20:49 -03:00
5866b9cb63 refactor: use os and io packages intead of ioutil when possible (#2189) 2021-04-25 13:00:51 -03:00
9f8750dcd2 fix: default gomips (#2124)
* fix: default gomips

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

* fix: test

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2021-03-20 15:17:19 -03:00
6d9abe6299 feat: add Os and Arch template options to the Binary name field (#1936)
* allow Os and Arch tmpl variables in binary name

* update documentation

* fix docs
2021-01-12 20:27:46 +00:00
2edebf0029 feat: add arm64 to the default goarch list (#1999)
* feat: add arm64 to the default goarch list

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

* fix: tests

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2021-01-07 12:25:52 +00: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
032a105533 feat: validate goos, goarch, goarm and gomips (#1886)
* feat: validate goos, goarch, goarm and gomips

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

* fix: lint

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

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-11-05 07:20:14 +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
6eae126445 feat: log build hooks (#1752)
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2020-08-15 14:18:31 -03:00
841eab183c feat: make goos and goarch available in hooks (#1702) 2020-07-23 18:46:43 +00:00
705ab90e4f fix: builds.binary template (#1476)
* fix: builds.binary template

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

* fix: revert

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

* fix: tests

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2020-04-29 15:08:06 -03:00
34c8fd4724 fix: better shellwords on hooks (#1437)
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2020-04-12 14:12:53 -03:00
8032d12052 feat(pipe/build): Add support for flexible build hooks (#1414) 2020-04-12 12:13:20 -03:00
5027d4bdfe test: Allow tests to run in parallel without failing (#1429)
All tests share the same environment (hence variable namespace too)
and setting & reading the same variables has lead to race conditions
which are being fixed by using different variables in each test.

Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2020-04-12 11:16:05 -03:00
cfa0cc2d2a feat(pipe/build): Report hook error in addition to stdout (#1430)
This helps in situations where hook couldn't run at all,
e.g. because of insufficient permissions.

Previously such failure would only be reported as
empty stdout/stderr output - this allows exposure
of the real root cause.
2020-04-12 10:44:12 -03:00
1cf9100ecc feat: build.skip option, support for library projects (#1419)
* fix: checksum pipe will not return an error when artifact list is empty

Signed-off-by: Leonardo Grasso <me@leonardograsso.com>

* new: build.skip option for libraries

Signed-off-by: Leonardo Grasso <me@leonardograsso.com>

* docs: update doc with build.skip option

Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
2020-04-02 13:18:05 +00:00
1943d3147b feat: specify (sub)directory with go code when building (#1273) 2020-01-13 14:23:00 -03:00
1cf86b86f6 feat: Add support for c-shared and c-archive build modes in windows (#1243)
* add hardcoded .dll and .lib extensions

* chore: remove unnecessary else case
2019-11-15 10:43:40 -03:00
9d5f36f21b feat: wasm support (#1159)
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2019-10-01 16:00:44 -03:00
4100f65d71 test: add error handling (#1111)
closes #1047
2019-08-13 10:28:03 -03:00
b477ffa095 refactor: pointer to artifact (#1110)
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2019-08-12 17:44:48 -03:00
8286402e3e fix: better duplicate ID message
refs #1090

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2019-07-27 10:55:56 -03:00
f656e68ef9 fix: non-templateable field as default build.id (#1060)
* fix: non-templateable field as default build.id

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

* test: added test for build.id

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

* test: fixed test

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2019-06-28 08:52:10 -03:00
7ee486fc9b fix: build with same binary name (#1041) 2019-06-09 12:14:30 -03:00
86c5b93260 feat: improved version command (#1028)
* feat: improved version command

* fix: typo

* test: fixed failing tests
2019-05-27 23:59:33 -03:00
c98d3881f7 refactor: id validations (#1015) 2019-05-07 07:18:35 -03:00
b8f5901265 feat: multiple archives (#942)
* feat: multiple archives

* fix: several things

* test: fixed

* fix: several things

* fix: archive id on the artifact

* fix: deprecated since

* docs: deprecations page improvements
2019-04-16 10:19:15 -03:00
5df1cac60a feat: templates and inherit global env on build hooks (#1007)
* feat: templateable hooks

* test: improved test

* docs: docs about templateable hooks

* test: improve test

* test: skip test that only fails on travis
2019-04-14 15:16:20 -03:00
15475c6484 feat: build id (#1008)
* feat: build id

* test: added more tests

* fix: imports
2019-04-14 15:16:01 -03:00
39de856eb4 refactor: better package organization 2018-09-12 14:18:01 -03:00