<!--
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?
* feat: strip_parent_binary_folder
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
* docs: clarify dir
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
* fix: fmt
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
* refactor: improve handling of extra fields in artifacts
Backporting from pro: with this we can parse the artifacts list from
json into the context and use them again.
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
* fix: tests
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
* test: fix
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
* 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>
* refactor: evaluate archive files in another package
would be used in #2911
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
* test: fixes
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
* fix: archive ids
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* test: add archive id filter test
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
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>
* feat: improve universal binaries on krew/brew/gofish
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* test: OnlyReplacingUnibins
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: archive
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: do not replace single-arch
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat(gofish): support binary releases
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: improve code
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix(archive): binary format should have the full binary name
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: added an extra field
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* 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>
* feat: artifacts.Remove
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: fatbinary
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: run fatbinary on pipeline
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: make archives work with fat binaries
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: make brew work with fat binaries
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: make gofish work with fat binaries
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* test: archive binary fatbin
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* docs: fat binaries
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* test: fix on linux
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat(ci): enable fat bins on goreleaser itself
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* refactor: rename to universal binaries
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: config
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: rename prop
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* refactor: archive files
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* feat: better archives
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* feat: better archives
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: test todos
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: go mod tidy et al
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: improve docs and remove typoe 'licence' from defaults
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* test: fixes
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: error string
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* test: remove some logs
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* test: use utc
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: replace zglob with gobwas/glob
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: added missing file
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* test: fixed wrong assertions
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: use fileglob
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* feat: update fileglob
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: update fileglob
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: tests
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: test errors
* fix: empty file
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: update fileglob
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* chore(deps): update nfpm
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: lint
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* chore(deps): bump github.com/golangci/golangci-lint from 1.23.7 to 1.27.0
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: tests
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: build.binary and artifact.extra.id
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: scoop usage of extra[binary]
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: unlock
* wip: fix gomips
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* wip: fix gomips
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* test: added more
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* test: added more
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* feat: remove singular archive config
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: tests
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* feat: multiple archives
* fix: several things
* test: fixed
* fix: several things
* fix: archive id on the artifact
* fix: deprecated since
* docs: deprecations page improvements