The PR refactors tests:
- change two lines `require.Error + require.Contains` with one
`require.ErrorContains`;
- change `require.Error + require.Equal` with `require.EqualError`.
refs #4513
this does not prevent the `dist` filepath to have spaces in it, although
that's likely less of an issue, but it will remove the spaces from
artifact's names.
Ideally, we could add a `tmpl.ApplyTrim` (or similar) that applies and
trim spaces, and use it everywhere it makes sense (which is likely a lot
of places).
Doing it on regular `Apply` might break things like release
footers/headers, which usually rely on empty lines (although maybe its
easier to treat those cases differently then).
Anyway, still thinking about it. Opinions are welcome :)
---------
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
since this will be a late, big release, let's remove the deprecated
stuff that expired
---------
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
This reverts back to using `git archive` for the source archives... but
will keep supporting extra files.
##### How it works:
Basically, we run `git archive` as before.
Then, we make a backup of the generated archive, and create a new one
copying by reading from the backup and writing into the new one.
Finally, we write the extra files to the new one as well.
This only happens if the configuration does have extra files, otherwise,
just the simple `git archive` will be run.
PS: we can't just append to the archive because weird tar format
paddings et al.
---------
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
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>
with this patch, a config like:
```yaml
archives:
- format: tar.gz
# this name template makes the OS and Arch compatible with the results of uname.
name_template: >-
{{ .ProjectName }}_
{{- title .Os }}_
{{- if eq .Arch "amd64" }}x86_64
{{- else if eq .Arch "386" }}i386
{{- else }}{{ .Arch }}{{ end }}
{{- if .Arm }}v{{ .Arm }}{{ end }}
rlcp: true
files:
- src: "build/**/*"
dst: .
nfpms:
- package_name: foo
contents:
- src: "build/**/*"
dst: usr/share/foo
formats:
- apk
```
will eval this:
<img width="1384" alt="CleanShot 2022-12-21 at 22 21 00@2x"
src="https://user-images.githubusercontent.com/245435/209034244-7c31b5f7-cfcd-4825-bb2f-7dd463c5286a.png">
as much as I would like to make this the default, it would be a breaking
change, so we really can't do it.
If `dst` is empty, it'll have the same behavior as before (no rlcp), and
if `strip_parent` is set, it will also still have the same behavior.
Finally, if the format is binary, `rlcp` is ignored too (as it doesn't
make sense).
So, this only changes if:
- your format is not binary; and
- you have files with `src` and `dst` set
Then, goreleaser will warn you to set `rlcp: true`.
## todo
- [x] docs
- [x] more tests probably
- [x] any ideas for a better name for the new config option?
fixes#3655
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
* 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>
* 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
* 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>
* 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(homebrew): 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: improve code a bit
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* test: fix archive testts
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>
* 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>
* 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>
* 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: multiple archives
* fix: several things
* test: fixed
* fix: several things
* fix: archive id on the artifact
* fix: deprecated since
* docs: deprecations page improvements