1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-01-10 03:47:03 +02:00
Commit Graph

1510 Commits

Author SHA1 Message Date
Carlos Alexandro Becker
a962e3b3cf
fix(snapcrafts): skip publish is check by publish pipe (#4275)
the publish pipe, which runs all publishers, already skips all
publishers if skip publish is set, so this check is not needed here.

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-09-04 16:20:36 -03:00
Carlos Alexandro Becker
8706fd2e89
feat: allow goreleaser to run in gerrit, soft-serve and others (#4271)
Currently, GoReleaser will assume you're running against github, gitea
or gitlab.

You could set `release.disable: true`, but it would still set and try to
use some defaults that could break things up.

Now, if you disable the release, goreleaser will not set these defaults.
It'll also hard error in some cases in which it would happily produce
invalid resources before, namely, if `release.disable` is set, and, for
example, `brews.url_template` is empty (in which case it would try to
use the one from the release, usually github).

closes #4208
2023-09-04 11:23:38 -03:00
Carlos Alexandro Becker
a14404f0f3
feat: support WASI (#4230)
`wasip1` is a valid `GOOS` value in the upcoming go 1.21.
2023-09-02 14:43:07 -03:00
Carlos Alexandro Becker
62cc45aa50
feat: templates in upx.enabled (#4269)
refs https://github.com/orgs/goreleaser/discussions/4268
2023-09-01 15:10:29 -03:00
Carlos Alexandro Becker
983cc3755d
feat(docker): retry push if 503 (#4265)
refs https://github.com/orgs/goreleaser/discussions/4263

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-09-01 11:16:16 -03:00
Carlos Alexandro Becker
ec0df9ecd5
fix: failing when pull_request.base is empty (#4261)
if the base branch is empty, it'll try to fetch the default branch,
which would fail if base repo name/owner are also empty.

the default behavior when base owner/name are missing is to using
head's, so I changed it do that before trying to get the default branch,
which should fix the issue.
2023-08-27 16:40:40 -03:00
Carlos Alexandro Becker
ecdbf5877c
feat: git.ignore_tags (#4255)
Allows to ignore tags that match the given regex expressions.
2023-08-27 15:57:03 -03:00
Carlos Alexandro Becker
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
Carlos Alexandro Becker
53bcbe951a
feat(deps): update go-github to v54 (#4251)
<!--

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>
2023-08-24 10:50:36 -03:00
Carlos Alexandro Becker
ddbb7c8f6f
fix: improve example config used in init
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-08-16 13:52:42 +00:00
Carlos Alexandro Becker
f0d0cac469
feat: update to go 1.21 (#4244)
update to go 1.21

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-08-15 11:15:04 -03:00
Carlos Alexandro Becker
cb093219c1
fix: snapshot should run before before hooks (#4250)
Otherwise .Version will be wrong.

closes #4247
2023-08-15 10:24:53 -03:00
Carlos Alexandro Becker
08e307ea8d
Revert "fix: skip defaults for skipped pipes (#4210)"
This reverts commit dccd68c126.

This breaks `continue` on goreleaser-pro.

Will re-work this for the next release.
2023-08-09 02:43:34 +00:00
Carlos Alexandro Becker
dccd68c126
fix: skip defaults for skipped pipes (#4210)
closes #4208

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-08-08 22:43:39 -03:00
Carlos Alexandro Becker
c06ba3a94f
feat: publishers.disable (#4239)
allows to disable a specific custom publisher based on a template, akin
to other pipes.

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-08-08 22:43:09 -03:00
Carlos Alexandro Becker
e7ceead889
test: fix
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-08-07 12:11:10 +00:00
Carlos Alexandro Becker
bbe2ee7bfb
refactor: properly annotate deprecated options
Removed unused, deprecated stuff.
2023-08-04 14:47:54 +00:00
Boshi Lian
65544aeec0
fix: docker respects builds binary file paths (#4218)
<!--

Hi, thanks for contributing!

Please make sure you read our CONTRIBUTING guide.

Also, add tests and the respective documentation changes as well.

-->

`docker` packaging does not honor the path structure defined in
builds/binary
it copies all binaries to temp docker build folder

this PR fixes the behavior and make it same as `archive` 

for example

```
builds:
- id: xxx 
  binary: plugins/xxx
```

before:

```
/tmp/goreleaserdocker2210262014/xxx
```

after:

```
/tmp/goreleaserdocker2210262014/plugins/xxx
```


<!-- If applied, this commit will... -->



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



<!-- # Provide links to any relevant tickets, URLs or other resources
-->
2023-08-03 09:19:07 -03:00
Carlos Alexandro Becker
d0a86edd90
feat(snapcraft): allow to disable (#4228)
allows to disable a snapcraft configuration based on a template, e.g. if
snapshot, nightly, etc
2023-08-03 09:17:26 -03:00
Carlos Alexandro Becker
1d17b311e3
fix(nix): multiple archives for the same platform (#4227)
this fixes is specially useful for universal binaries that replace the
separated binaries.

closes #4226
2023-08-02 22:58:10 -03:00
Carlos Alexandro Becker
79688e0ae5
test(docker): fix broken test
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-08-03 01:57:40 +00:00
Carlos Alexandro Becker
c6655bc094
feat(nix): support zip packages (#4225)
closes https://github.com/goreleaser/goreleaser/issues/4224
2023-08-02 20:42:35 -03:00
Carlos Alexandro Becker
51d9fc67a9
feat(deps): use mergo 1.0.0 2023-07-31 16:32:36 +00:00
Carlos Alexandro Becker
d7921d4638 feat(brew): extra_install
Allows to add manpages and shell completion installs without overriding
the default bin.install.
2023-07-31 09:40:35 -03:00
Carlos Alexandro Becker
025b8757b8
fix(nix): improve extra_install 2023-07-30 03:04:59 +00:00
Carlos Alexandro Becker
8a4c874a13 fix(nix): potentially unused with lib 2023-07-26 11:32:37 -03:00
Carlos Alexandro Becker
f107338870 fix(nix): fmt
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-26 11:32:37 -03:00
Carlos Alexandro Becker
94f080d77c feat(nix): extraInstall 2023-07-26 11:32:37 -03:00
Carlos Alexandro Becker
e672699b0a feat(nix): runtime dependencies
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-26 11:32:37 -03:00
Carlos Alexandro Becker
5e27651dae
fix: using token log message
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-26 00:34:40 +00:00
Carlos Alexandro Becker
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
Carlos Alexandro Becker
a726a29d70
fix(winget): improve commit msgs (#4199)
closes  #4198
2023-07-19 22:04:45 -03:00
Carlos Alexandro Becker
7a2fc10625
feat(winget): PortableCommandAlias (#4196)
needs #4195

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-18 16:43:36 -03:00
Carl Tashian
00bc248c1b
fix(winget): replace forward slashes in Winget RelativeFilePath (#4195)
If an archive filename contains `/` characters, they can sneak into
Winget's `RelativeFilePath`.
In this PR, I make sure that `RelativeFilePath` only uses `\` directory
separators.
2023-07-18 15:34:07 -03:00
Carlos Alexandro Becker
3ed6751bb9
feat(nfpm): allow to template scripts names 2023-07-18 00:44:11 +00:00
Carlos Alexandro Becker
58a6ba4e30
feat(scoop): support arm64 (#4193)
adds arm64 support to scoops.

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-17 21:26:18 -03:00
Carlos Alexandro Becker
8e0b9405f9
fix: use t.TempDir
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-17 11:56:06 +00:00
Carlos Alexandro Becker
a0f0d01a81
refactor: dockefile tmpl 2023-07-17 02:31:00 +00:00
Carlos Alexandro Becker
cbb09b89fd
fix(docker): should use cmd.Environ() instead of cmd.Env
refs #4187
2023-07-17 02:26:48 +00:00
Carlos Alexandro Becker
609e7c5657
feat: metadata mod_timestamp (#4188)
closes #4167

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-15 16:53:52 -03:00
Carlos Alexandro Becker
b9a08c4dc9
refactor: gio.Chtimes (#4191)
we're repeating this quite a bit

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-15 16:33:40 -03:00
Carlos Alexandro Becker
3c1ebe82cd
feat: support setting mod_timestamp in universalbinary (#4172)
refs #4167

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-13 23:23:41 -03:00
Carlos Alexandro Becker
52792f4a15
fix(nfpm): lintian unix path (#4175)
closes #4174
needs https://github.com/goreleaser/nfpm/pull/690

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-13 23:03:40 -03:00
Carlos Alexandro Becker
53ef7fe172
fix(nfpm): rpm.packager binding was missing
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-14 01:56:04 +00:00
Carlos Alexandro Becker
cc18ad5184
feat(nfpm): update + rpm prefixes support
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-14 01:55:47 +00:00
Hidde Beydals
326a8c885e
feat: support make_latest for GitHub release (#4161)
This commit adds a `make_latest` boolean to the release configuration,
to allow signaling to GitHub if the release should be marked as latest.

Albeit being a boolean, the internal Go type is a string to allow
to distinguish an empty string (default behavior: `true`) from an
explicit `false`.

For more information around the GitHub API field, see

https://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28#create-a-release

I did not include the `legacy` option, to not adopt something which
appears to be scheduled for removal in the future.

In addition, I opted for `make_latest` over `latest` because the
option is only available for GitHub. Which keeps the latter key
reserved for e.g. future use of a config option which is used across
Git providers.

Fixes #4159

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-14 01:45:57 +00:00
Hidde Beydals
9f6a810fbc
Support make_latest for GitHub release (#4161)
This commit adds a `make_latest` boolean to the release configuration,
to allow signaling to GitHub if the release should be marked as latest.

Albeit being a boolean, the internal Go type is a string to allow
to distinguish an empty string (default behavior: `true`) from an
explicit `false`.

For more information around the GitHub API field, see

https://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28#create-a-release

I did not include the `legacy` option, to not adopt something which
appears to be scheduled for removal in the future.

In addition, I opted for `make_latest` over `latest` because the
option is only available for GitHub. Which keeps the latter key
reserved for e.g. future use of a config option which is used across
Git providers.

Fixes #4159

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-07-13 22:42:20 -03:00
Carlos Alexandro Becker
a3a15fb18b
test: improve test func names for clients
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-14 01:42:00 +00:00
Carlos Alexandro Becker
ecb8dc54d7
test: fix another gitea test 2023-07-14 01:36:48 +00:00
Carlos Alexandro Becker
cd49d184b8
test: fix broken gitea test due to api changes
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-14 00:33:34 +00:00
Carlos Alexandro Becker
8752504b81
fix: docker.env should be first
refs #4187
2023-07-14 00:25:40 +00:00
Marcos Nils
789a4d45fe
ci: append envs when calling docker instead of overriding (#4187)
This is causing issues when trying to run tests in Dagger.
ref:
https://github.com/goreleaser/goreleaser/pull/4186#discussion_r1262977616

Signed-off-by: Marcos Lilljedahl <marcosnils@gmail.com>

Signed-off-by: Marcos Lilljedahl <marcosnils@gmail.com>
2023-07-13 21:22:47 -03:00
Jimmi Dyson
f170c92db9
fix: delete temporary dir used for docker build (#4178)
<!--

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... -->

Delete the temporary directory used for building Docker images.

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

Leaving the temporary directory leads to wasted disk space.

<!-- # Provide links to any relevant tickets, URLs or other resources
-->
2023-07-11 14:12:21 -03:00
Carlos Alexandro Becker
a324009978
fix(winget): add missing fields, more templates (#4164)
This adds missing fields:

- LicenseURL
- CopyrightURL
- Tags

As well as make several more fields templateable.


cc/ @twpayne

Co-authored-by: Tom Payne <tom.payne@flarm.com>
2023-07-05 23:33:18 -03:00
Carlos Alexandro Becker
86beb584bf
fix: improve error message
refs #4160
2023-07-03 19:01:11 +00:00
Tom Payne
c57cdab0c6
refactor: add function to apply template multiple times (#4158)
If applied, this commit simplifies the code required to support
templated fields in configuration files. This should make it easier to
add more templated fields in the future.

As [discussed first on
Discord](https://discord.com/channels/890434333251362866/1032457293687685191/1124033219747127316).
2023-06-30 14:46:53 -03:00
Carlos Alexandro Becker
5f7be841d8
fix(nix): description, path and homepage should allow templates (#4156)
- nix.description, nix.path, and nix.homepage should allow templates
- nix.path was defaulting to wrong value, fixed

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-29 14:15:53 -03:00
Carlos Alexandro Becker
f883131e73
fix(github): check rate limit again after sleeping (#4152)
also ensure sleep > 0

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-29 14:00:23 -03:00
Carlos Alexandro Becker
e9760a167b
refactor(winget): minor improvements (#4157)
improved readability a bit

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-29 13:59:33 -03:00
Carlos Alexandro Becker
a6e6e7098d
feat(deps): update env to v9
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-28 16:29:19 +00:00
Radu Jipa
3d77e8e194
fix: Scoop releases being skipped via disabled SCM releases (#4150)
The check to skip Scoop releases when SCM ones are disabled seems to be
the only place where this is happening and in conflict to Brew releases.
These two need not be linked as users can configure the `url_template`
to point elsewhere.

--- 

Consider the following use case:

```
 * goreleaser/my-app.yml
   - builds: spec for building a Go binary for my-app
   - dockers: spec for packaging my-app in a container and pushing to Artifactory & GCP
   - archives: spec for zipping up my-app binary
   - artifactories: spec for pushing archives of my-app to a private jfrog artifactory
   - brews: spec for publishing my-app through brew on macOS with URLs from artifactory
   - scoop: spec for publishing my-app through scoop on Windows with URLs from artifactory
   - release: disabled SCM (e.g. GitHub) release
```

Running `goreleaser release -f goreleaser/my-app.yml` with the above
setup results in the correct artifacts (archives & containers) being
published to Artifactory, GCP, Brew, but no Scoop.

Given that Scoop's `skip_upload` cannot be templated in 1.18 and I do
not wish to have SCM releases & tags on every release, one can be rather
stuck.
2023-06-28 09:44:59 -03:00
Carlos Alexandro Becker
7671b54056
test(ko): fix
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-26 17:47:12 +00:00
Carlos Alexandro Becker
7d485d6399
fix(winget): default commit message
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-26 17:09:18 +00:00
Carlos Alexandro Becker
faf3d2a52c
test(ko): fix error msg
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-26 16:58:19 +00:00
Carlos Alexandro Becker
d085b3ad44
feat(deps): bump github.com/google/go-github/v53 50.1.0 to 53.2.0 (#4146)
updated!

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-26 13:41:47 -03:00
Carlos Alexandro Becker
6cd9674c97
chore: fix lint 2023-06-25 12:55:40 +00:00
Eng Zer Jun
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
Carlos Alexandro Becker
cc570c3ba4
fix(nix): missing artifact type stringer 2023-06-25 05:42:49 +00:00
Carlos Alexandro Becker
e9b4bc05da
fix: use commit msg as PR title 2023-06-25 05:16:37 +00:00
Carlos Alexandro Becker
2eaefa94b1
fix(winget): release notes should be optional
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-25 05:15:17 +00:00
Carlos Alexandro Becker
e525b66631
fix(winget): incorrect filenames (#4139)
- needs to use package identifier in the filename
- locale file need `locale` in its name

found out testing it in
https://github.com/microsoft/winget-pkgs/pull/110633
2023-06-25 01:27:08 -03:00
Carlos Alexandro Becker
4dc31e99b7
fix(nix): local filename when path not set 2023-06-25 04:26:31 +00:00
Carlos Alexandro Becker
528b06a075
fix(snapcraft): title and icon are optional (#4138)
It will otherwise create the empty fields in the yaml, and snapcraft
then complains they are empty and fail.

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-24 23:38:24 -03:00
Carlos Alexandro Becker
76ce66c060
fix: improve brew/krew/scoop/nix/winget paths inside dist (#4137)
mimic the structure to be created in the target repo, and put each of
them in its own folder.

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-24 23:38:09 -03:00
Carlos Alexandro Becker
f33a534825
fix: umask nfpm field (#4136)
nfpm was updated, but we never allowed to configure the umask field in
goreleaser.

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-22 09:08:31 -03:00
Carlos Alexandro Becker
72cf8404c1
feat: continue on error (#4127)
closes #3989

Basically, when some of these pipes fail, the error will be memorized,
and all errors will be thrown in the end.

Meaning: the exit code will still be 1, but it'll not have stopped in
the first error.

Thinking of maybe adding a `--fail-fast` flag to disable this behavior
as well 🤔

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-20 09:33:59 -03:00
Carlos Alexandro Becker
42822497ae
feat(aur): single commit per package (#4126)
using the new multiple files api to have a single commit/push for all
files of a package.

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-19 14:03:22 -03:00
Carlos Alexandro Becker
739490290f
test: improve more tests (#4124) 2023-06-18 11:58:17 -03:00
Carlos Alexandro Becker
c6851f5eee
fix(nix): hc should report nix-prefetch-url as a dependency
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-17 23:23:14 +00:00
Carlos Alexandro Becker
e5c9338efd
feat: changelog.include (#4122)
closes https://github.com/goreleaser/goreleaser/issues/4111
refs https://github.com/orgs/goreleaser/discussions/4110
recreated #4115

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-16 13:31:23 -03:00
Carlos Alexandro Becker
2ad313a7e2
test: syscall.EACCES and os.ErrNoExist (#4120)
extracted from #3795

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-15 23:53:20 -03:00
Carlos Alexandro Becker
bad7984962
test: improve executable not found checks (#4119)
extracted from #3795
2023-06-15 23:51:07 -03:00
Carlos Alexandro Becker
bb33419beb
fix: archives should always use forward slash (#4116)
extracted from #3795

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-15 23:43:29 -03:00
Carlos Alexandro Becker
ef3c42f22e
fix: artifact.Path should filepath.ToSlash (#4117)
this is needed when we run part of the pipeline on windows, and the rest
on linux, for example, the split build pro feature.

extracted from https://github.com/goreleaser/goreleaser/pull/3795 

+ added tests for relative path thing

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-15 23:43:06 -03:00
Carlos Alexandro Becker
e5a0f662fd
test: ECONNREFUSED (#4118)
improved test check

extracted from #3795
2023-06-15 23:42:55 -03:00
Carlos Alexandro Becker
0f5b058363
feat(winget): support arm64
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-15 03:34:12 +00:00
Carlos Alexandro Becker
6afdb49c12
feat: winget support (#4081)
this will add support to winget into goreleaser.

Basically, the plan is:

- we generate the 3 needed yaml files 
- we commit them to a repo

and that's it.

Initially, will probably have limited options support, and will only
have the default locale.

###### TODO

- [x] docs
- [x] review by someone who knows how this works?
- [x] test install somewhere
- [x] more tests maybe?
- [x] PR templates via API?
https://github.com/goreleaser/goreleaser/pull/4105
- [x] real project test 
- [x] setup goreleaser to pr to winget as well
- [x] document sync fork stuff
https://github.com/goreleaser/goreleaser/pull/4106

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-14 23:59:55 -03:00
Carlos Alexandro Becker
81bd82b13b
fix(nix): improve error message
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-15 02:55:32 +00:00
Carlos Alexandro Becker
823bc6062d
feat: make git client support creating multiple files in a single commit (#4107)
extracted from #4081

a little bit of a better impl than there, actually...
2023-06-14 23:52:35 -03:00
Carlos Alexandro Becker
bbcc45b677
feat: support pull request templates (#4105)
check if there is a `.github/PULL_REQUEST_TEMPLATE.md` file, and use it
as body of the pull request if there is.

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-14 23:28:38 -03:00
Carlos Alexandro Becker
51592e1424
feat: envOrDefault template function (#4097)
You can achieve the same with `{{ with (index .Env "NAME") }}etc`, but
this looks cleaner.

refs #4096
2023-06-14 00:16:01 -03:00
Carlos Alexandro Becker
62b065dad0
feat: deprecate brews.tap, krews.index & scoops.bucket (#4099)
It should make goreleaser easier to use, as a `repository` is now always
called `repository`.

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-14 00:13:21 -03:00
Carlos Alexandro Becker
aae9433a55
fix: archive extraformat when using format override 2023-06-13 12:16:05 +00:00
Carlos Alexandro Becker
e9c5a922f9
Revert "feat: add winget to pipeline"
This reverts commit 62f4bd5a66.

wrong commit sha
2023-06-13 12:15:28 +00:00
Carlos Alexandro Becker
62f4bd5a66
feat: add winget to pipeline 2023-06-13 03:47:35 +00:00
Adam Bouqdib
d4bbf44d65
feat(snapcraft): support title, icon, assumes & hooks (#3930)
This PR adds support for a few missing snapcraft fields which were
required for my project.
Reference here: https://snapcraft.io/docs/snapcraft-yaml-reference
2023-06-12 09:03:24 -03:00
Carlos Alexandro Becker
68b38c0229
test: fix
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-07 02:57:51 +00:00
Carlos Alexandro Becker
eadd377730
feat: remove deprecated rlcp options (#4076)
removing another deprecated option

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-06 13:54:43 -03:00
Carlos Alexandro Becker
66cee9493c
feat: remove deprecated replacements (#4075)
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>
2023-06-06 11:46:02 -03:00
Carlos Alexandro Becker
b1c8e9f25b
feat: added IsNightly to OSS template variables
This should make it easier to use the same config file with both oss and
pro versions when only the nightly feature is used, e.g. in #3501.

Currently, that would fail because `IsNightly` is not a template field,
so you won't really be able to do it without keeping a second
`.goreleaser.yml` file. With this change, `IsNightly` always eval to
false on OSS, and keeps working as before on Pro.
2023-06-06 01:07:26 -03:00
Carlos Alexandro Becker
de599666b8
fix: deprecate brews.plist (#4073)
service has been available for a long time as well.

closes #3990
2023-06-06 01:02:40 -03:00
Carlos Alexandro Becker
4936929ddd
feat: sort brew dependencies
so it better aligns with brew audit

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-06 00:32:46 -03:00
Ville Skyttä
ef690d07ef
style: spelling and grammar fixes (#4069)
Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-05 13:08:57 -03:00
Carlos Alexandro Becker
09411ea60a
feat: Checksums as a template field (#4064)
this would allow to add the checksums to the body of the release
contents, for example.


refs https://github.com/orgs/goreleaser/discussions/4063

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-05 13:05:28 -03:00
Carlos Alexandro Becker
d0ba64e70d
test: fix scoop tests
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-01 17:17:08 +00:00
Carlos Alexandro Becker
f618f00cd0
test: fix temp file
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-05-31 18:37:21 +00:00
Carlos Alexandro Becker
1d92a36340
feat(scoop): allow to template description and homepage (#4057)
make `scoops.description` and `scoops.homepage` templateable as well.
2023-05-30 13:41:24 -03:00
Carlos Alexandro Becker
ffad12eae4
feat(upx): allow to filter by goos, goarch, goarm, goamd64 (#4056)
closes #3993
closes #3982
2023-05-30 08:50:08 -03:00
Carlos Alexandro Becker
ac5788eed0
fix: add do not edit header to generated files
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-05-29 18:23:00 +00:00
Carlos Alexandro Becker
f6b9ccbd8f
feat(github): allow to open PRs as drafts (#4054)
This allows to open a pull requests as a draft.

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-05-29 15:07:00 -03:00
Carlos Alexandro Becker
773cb91a7a
feat(github): allow to PR cross-repo (#4053)
This allows to open pull requests across repositories on nix, brew, krew
and scoop.

closes #4048

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-05-29 14:37:10 -03:00
Carlos Alexandro Becker
a3bc051933
fix(nix): better errors if nix-prefetch-url fails 2023-05-29 16:38:11 +00:00
Carlos Alexandro Becker
75c47d1da8
feat(nix): support armv6l and armv7l (#4051)
closes #4049
2023-05-29 11:59:19 -03:00
Carlos Alexandro Becker
d0cf457136
feat: improve verbose output (#4017)
- deprecates `--debug` in favor of `--verbose` which is clearer 
- improved some debug log outputs
- docs: update documentation to always use the `release` subcommand
(when it makes sense)
2023-05-27 00:18:39 -03:00
Carlos Alexandro Becker
e0dabc1cb9
feat(telegram): ability to choose msg format, mdv2escape (#4036)
this allows to choose parse mode between `HTML` and `Markdownv2`, and
adds a new template function, `mdv2escape`, to escape the characters
according to telegram docs:
https://core.telegram.org/bots/api#formatting-options


closes #4021
2023-05-27 00:17:02 -03:00
Carlos Alexandro Becker
3bb9a9a5b3
feat: allow to sign KO manifests (#4038)
add ko-generated manifests to the artifact list, this way they can be
signed later.

closes #4027

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-05-27 00:16:07 -03:00
Carlos Alexandro Becker
1f8a7b2fc5
feat(github): avoid rate limits (#4037)
before doing anything, check the `/rate_limits` API... if we have less
than 100 remaining, wait for the reset timer.

closes #4028
2023-05-27 00:15:43 -03:00
Carlos Alexandro Becker
051381837d
feat(ko): allow to have an empty tag name (#4043)
Empty tag names will then be filtered out. This allows to have optional
tags depending on templates, for example,
`{{if not .Prerelease}}latest{{end}}`, among other use cases.

This already happens in the `dockers` section, and is now implemented in
`kos` too.

refs https://github.com/orgs/goreleaser/discussions/4042
2023-05-27 00:14:02 -03:00
Carlos Alexandro Becker
b9e276feca
fix(nfpm): write too long when writing the lintian file (#4039)
The lintian files were being written for every format, whether they were
a deb or not.

Since package name and arches are the same, and packaging runs in
parallel, it could happen that one goroutine is reading while the other
is writing, as we were guaranteeing uniquenes based on package name and
arch only.

This makes it only creates the lintian files when format is deb, so this
shouldn't happen anymore.

It also goes one step further by using the actual format in the filepath
instead of hard-coding "deb".

This also still supports tmux.

closes #4024
2023-05-26 09:59:48 -03:00
Carlos Alexandro Becker
99afc8d62e
feat: nix support (#4012)
very, very, very WIP implementation of nixpkgs for GoReleaser.

**Decisions made for this first version:**
- only linux and darwin, arm64, 386 and amd64
- only support pkgs from goreleaser-generated archives
- no support to push into default nixpkgs repository
- no support to automatically add the _maybe_ new pkg to the root
`default.nix`
- the generated nixpkg will be rather verbose, which shouldn't be too
much of an issue as it is autogenerated anyway

**TODOs**:
- [x] macos universal binary support
- [x] custom pkg path (e.g. pkgs/misc/foo/bar/default.nix)
- [x] handle archives with a folder in them
- [x] add more options: postInstall, ??

**Will be handled in future versions**:
- [ ] archives.format=binary support
- [ ] compile from source
- [ ] PR-ing into nixpkgs
- [ ] armv6l-linux & armv7l-linux support

closes #3537

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-05-25 23:07:10 -03:00
Carlos Alexandro Becker
dbd4342078
test(nfpm): fix after update 2023-05-24 12:18:58 +00:00
Carlos Alexandro Becker
27f94523c8
fix(scoop): allow templating name and skip_upload
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-05-19 14:25:39 +00:00
Carlos Alexandro Becker
dfcd535e31
fix: improve "pushing" logs for multiple publishers 2023-05-19 14:10:06 +00:00
Carlos Alexandro Becker
b5e8d6db06
fix(archive): warn only for non-default globs with no matches (#4013)
Adjust the logging of warnings for unmatched globs to only show when the
glob is not a default. No warning will be output for the default globs
when there are no matching files.

These are defaults, by design, very generic.
We should not warn the user about them not finding anything, as that is
their expected behavior most of the time.
2023-05-16 09:22:22 -03:00
Carlos Alexandro Becker
05d25567f9
feat: allow to template dockers.skip_push and docker_manifests.skip_push (#4008) 2023-05-12 01:51:02 -03:00
Carlos Alexandro Becker
ad00069419
fix: warn when no match on archive files (#3992)
refs https://github.com/orgs/goreleaser/discussions/3991

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-05-06 23:08:36 -03:00
Carlos Alexandro Becker
6eed3e03b0
fix: typo in a brew error message 2023-05-02 12:18:36 +00:00
Carlos Alexandro Becker
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
Carlos Alexandro Becker
4330b522ea
feat: IsGitDirty template variable (#3967)
will only ever be true on snapshots or when ran with `--skip-validate`.
This should be useful as a ldflag, for example.
2023-05-02 01:04:18 -03:00
Carlos Alexandro Becker
43ae761179
feat: native upx support (#3965)
this adds a new root-level `upx` config, so users can pack their
binaries with upx :)

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-05-01 21:22:05 -03:00
Carlos Alexandro Becker
eb823dee14
feat: allow multiple scoops (#3963)
This brings the scoops feature a bit more closer to similar pipes, like
brew and krew.

- It now supports multiple scoops
- It improves some validations to prevent wrong manifests
- It uses extra.binaries instead of extra.builds, as brew does too
	- extra.builds is now unused, will be removed in a subsequent PR
- More tests were added as well

closes #3941

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-04-30 21:29:36 -03:00
Carlos Alexandro Becker
b36e913eda
fix: reportsizes before metadate 2023-04-30 17:00:43 +00:00
Carlos Alexandro Becker
28ca70faae
refactor: use context 2023-04-30 13:33:57 +00:00
Carlos Alexandro Becker
7858e3ee1a
refactor: improvements 2023-04-30 13:23:26 +00:00
Carlos Alexandro Becker
5bf42b726f
feat: publish taps, krews and scoops to regular git repositories (#3961)
basically redoing #3559 as it got impossible to merge with the many
changes since it was open (which is totally my fault for not merging it
earlier).

Anyhow, still a WIP, going also doing some other related improvements in
the way.

cc/ @graytonio

closes #3559
closes #3525

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Co-authored-by: Grayton Ward <graytonio.ward@gmail.com>
2023-04-30 10:18:13 -03:00
Carlos Alexandro Becker
95b809dd13
feat: allow to template nfpms.package_name (#3960)
closes https://github.com/goreleaser/goreleaser/issues/3956
2023-04-29 15:30:52 -03:00
Carlos Alexandro Becker
30fc74df24
fix: log when no artifacts match for signing 2023-04-28 01:07:38 +00:00
Carlos Alexandro Becker
f3e1170a89
feat: log generated artifact sizes (#3954)
This adds a log with the size of the generated binaries/packages/etc in
the end of the build process, and also adds it to the artifacts.json

closes #3949

TODO:

- [x] tests
- [x] docs
- [ ] ??

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-04-23 20:27:16 -03:00
dependabot[bot]
2d5cb60771
feat(deps): bump github.com/charmbracelet/keygen from 0.3.0 to 0.4.1 (#3932)
Bumps
[github.com/charmbracelet/keygen](https://github.com/charmbracelet/keygen)
from 0.3.0 to 0.4.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/charmbracelet/keygen/releases">github.com/charmbracelet/keygen's
releases</a>.</em></p>
<blockquote>
<h2>v0.4.1</h2>
<h2>Changelog</h2>
<h3>Bug fixes</h3>
<ul>
<li>ba5b3746062cbc051702c188911f44c1e2b5c986: fix: don't trim key path
(<a
href="https://github.com/aymanbagabas"><code>@​aymanbagabas</code></a>)</li>
</ul>
<hr />
<p><!-- raw HTML omitted --><!-- raw HTML omitted --><!-- raw HTML
omitted --></p>
<p>Thoughts? Questions? We love hearing from you. Feel free to reach out
on <a href="https://twitter.com/charmcli">Twitter</a>, <a
href="https://mastodon.technology/@charm">The Fediverse</a>, or on <a
href="https://charm.sh/chat">Discord</a>.</p>
<h2>v0.4.0</h2>
<h1>Breaking Change</h1>
<ul>
<li>Keygen no longer appends the key type to the file path.</li>
<li>Use functional options to specify key type, passphrase, and other
options.</li>
<li><code>PrivateKeyPEM</code> is now <code>RawPrivateKey</code></li>
<li><code>RawProtectedPrivateKey</code> returns the password protected
PEM encoded private key.</li>
<li><code>PublicKey</code> is now <code>RawAuthorizedKey</code>.</li>
<li><code>AuthorizedKey</code> returns the authorized key stripped out
of comments and options (the ssh pubic key only).</li>
<li><code>PrivateKey</code> now returns the underlying
<code>crypto.PrivateKey</code></li>
<li>Use <code>Signer</code> to get an <code>ssh.Signer</code> from your
key pair.</li>
</ul>
<h2>Changelog</h2>
<h3>New Features</h3>
<ul>
<li>ab32d1ae447e5d74a47dd64ec2e75d0a827ccc9b: feat(ci): add workflows
and goreleaser (<a
href="https://github.com/aymanbagabas"><code>@​aymanbagabas</code></a>)</li>
<li>6ed037835403e5da4a2aa10e5c8568ff4a3bad41: feat: add more tests (<a
href="https://github.com/aymanbagabas"><code>@​aymanbagabas</code></a>)</li>
<li>37c7434ac69d79048521a7e4bfa0f9dfbb0c1f23: feat: bump dependencies
(<a
href="https://github.com/aymanbagabas"><code>@​aymanbagabas</code></a>)</li>
<li>8d80e760657463eda55e2f0c773ed3fe3b3e3b08: feat: return ssh.Signer
(<a
href="https://github.com/aymanbagabas"><code>@​aymanbagabas</code></a>)</li>
<li>6c0cbbb70022377d611d25d98836e016b2c145a5: feat: specify ECDSA
elliptic curve (<a
href="https://github.com/aymanbagabas"><code>@​aymanbagabas</code></a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>30d86a9582001686d63de3f79e4e90a7b6a62a9e: fix: update x/crypto (<a
href="https://redirect.github.com/charmbracelet/keygen/issues/8">#8</a>)
(<a href="https://github.com/caarlos0"><code>@​caarlos0</code></a>)</li>
</ul>
<h3>Documentation updates</h3>
<ul>
<li>eef068dedc6af24e8eda0c99db3a03c988b46cff: docs: new readme footer
(<a href="https://github.com/muesli"><code>@​muesli</code></a>)</li>
<li>f7556041d69b45aef018df2269d29e6d018ae6cc: docs: update example in
readme (<a
href="https://github.com/aymanbagabas"><code>@​aymanbagabas</code></a>)</li>
</ul>
<h3>Other work</h3>
<ul>
<li>472a463d0e8df9e768b350d75ee57a8c9baf69d6: ref: change api to expose
ssh.PublicKey and authorizd_key (<a
href="https://github.com/aymanbagabas"><code>@​aymanbagabas</code></a>)</li>
</ul>
<hr />
<p><!-- raw HTML omitted --><!-- raw HTML omitted --><!-- raw HTML
omitted --></p>
<p>Thoughts? Questions? We love hearing from you. Feel free to reach out
on <a href="https://twitter.com/charmcli">Twitter</a>, <a
href="https://mastodon.technology/@charm">The Fediverse</a>, or on <a
href="https://charm.sh/chat">Discord</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ba5b374606"><code>ba5b374</code></a>
fix: don't trim key path</li>
<li><a
href="6ed0378354"><code>6ed0378</code></a>
feat: add more tests</li>
<li><a
href="6c0cbbb700"><code>6c0cbbb</code></a>
feat: specify ECDSA elliptic curve</li>
<li><a
href="8d80e76065"><code>8d80e76</code></a>
feat: return ssh.Signer</li>
<li><a
href="3dbbf0ca45"><code>3dbbf0c</code></a>
chore: go mod tidy</li>
<li><a
href="37c7434ac6"><code>37c7434</code></a>
feat: bump dependencies</li>
<li><a
href="472a463d0e"><code>472a463</code></a>
ref: change api to expose ssh.PublicKey and authorizd_key</li>
<li><a
href="30d86a9582"><code>30d86a9</code></a>
fix: update x/crypto (<a
href="https://redirect.github.com/charmbracelet/keygen/issues/8">#8</a>)</li>
<li><a
href="eef068dedc"><code>eef068d</code></a>
docs: new readme footer</li>
<li><a
href="f7556041d6"><code>f755604</code></a>
docs: update example in readme</li>
<li>Additional commits viewable in <a
href="https://github.com/charmbracelet/keygen/compare/v0.3.0...v0.4.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/charmbracelet/keygen&package-manager=go_modules&previous-version=0.3.0&new-version=0.4.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-04-23 14:21:33 -03:00
John Olheiser
6b86499655
feat: add force_token to config (#3936)
As a follow-up to #3910, this adds `force_token` to the config.

Signed-off-by: jolheiser <john.olheiser@gmail.com>
2023-04-23 13:53:45 -03:00
Carlos Alexandro Becker
3c7a63979c
test: ensure utf-8 sources/archives filenames work properly (#3925)
This now works for files added to the source archive **after** the `git
archive` command is run. During the `git archive`, it seems that the
`tar` is still using some format that doesn't support utf-8 by default.

Tomorrow I'll look more into it.

see https://pkg.go.dev/archive/tar#Format

closes #3812

---------

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
Co-Authored-By: Mohammed Al Sahaf <msaa1990@gmail.com>
2023-04-15 15:48:14 -03:00
Carlos Alexandro Becker
11b32cf3b7
fix: build should output more debug info (#3939)
fixes #3934

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-04-13 23:08:31 -03:00
Carlos Alexandro Becker
e872e45b44
fix: improve docker error handling (#3942)
refs
https://github.com/goreleaser/goreleaser/pull/3940#issuecomment-1507149519
2023-04-13 13:56:56 -03:00
Carlos Alexandro Becker
f6b5e9abb8
fix: source archive not being added when no extra-files (#3938)
closes #3937

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-04-13 11:44:02 -03:00
Matthew Bamber
ac19f902b4
fix(nfpm): Add extension to produced artifacts (#3940)
Add extension to produced artifacts so that they can be filtered in
later steps

Fixes #3933

Co-authored-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-04-13 11:42:58 -03:00
Carlos Alexandro Becker
d5a413f9f4
feat: add context info to docker build errors (#3920)
its too hard to debug docker build issues... sometimes is just a typo in
the binary name, and you might end debugging it for way too long...

this prints the full path to the build context (so, locally at least,
you can cd into it) and also all the files available there when the
error seems to be one of the "file not found" kind.

Hopefully this helps fixing things easier :)

closes #3912

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-04-08 21:06:04 -03:00
Carlos A Becker
00d16bb51d
test: improve source tests
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-04-08 02:30:26 +00:00
Carlos Alexandro Becker
0eb3e7975c
fix: use git-archive under the hood (#3904)
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>
2023-04-07 22:53:15 -03:00
Carlos Alexandro Becker
282c42164e
feat: allow to pr scoop manifests (#3916)
follow up of https://github.com/goreleaser/goreleaser/pull/3903

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-04-07 11:48:49 -03:00
Carlos Alexandro Becker
5805c5d608
feat: allow to pr krew plugin manifests (#3915)
following up on #3903

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-04-07 11:48:35 -03:00
Carlos Alexandro Becker
8b1c4ead60
feat: allow to PR homebrew taps (#3903)
closes #3485

also fixed a bug in file creation for github: it was always searching
for the file in the default branch

also, we don't need to create the file first, update does both create
and update.

TODO: implement the for krew, scoop, etc...

---------

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-04-06 22:58:06 -03:00
Carlos A Becker
137ed3be74
feat(deps): update caarlos0/env to v8
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-04-07 01:50:09 +00:00
Carlos Alexandro Becker
dc6a4e7e2f
feat: allow to forcefully use a token when multiple are set (#3910)
This would allow to, when multiple tokens are set in the environment,
force which one you want to use.

The need for this comes from the fact gitea sets both `GITHUB_TOKEN` and
`GITEA_TOKEN`, and doesn't allow to easily disable either.

With this, users can add a `GORELEASER_FORCE_TOKEN=gitea` to force the
gitea client to be used.

I'm not sure what's the best name for this env yet, happy to hear
suggestions.

Also improved the `env_test.go` file a bit, as it was kinda messy with
env vars...

refs https://github.com/orgs/goreleaser/discussions/3900

---------

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-04-05 16:33:22 -03:00
Lars Lehtonen
5af2c31c7a
refactor: fix redundant net/http import (#3897)
This fixes a redundant import of `net/http` in `internal/pipe/upload`.

Signed-off-by: Lars Lehtonen <lars.lehtonen@gmail.com>
2023-03-30 08:54:52 -03:00
dependabot[bot]
43731e252c
feat(deps): bump github.com/google/ko from 0.12.0 to 0.13.0 (#3880)
Bumps [github.com/google/ko](https://github.com/google/ko) from 0.12.0
to 0.13.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google/ko/releases">github.com/google/ko's
releases</a>.</em></p>
<blockquote>
<h2>v0.13.0</h2>
<h2>What's Changed</h2>
<ul>
<li>SPDX: Fix package manager label by <a
href="https://github.com/puerco"><code>@​puerco</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/801">ko-build/ko#801</a></li>
<li>SPDX 2.3 support by <a
href="https://github.com/puerco"><code>@​puerco</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/803">ko-build/ko#803</a></li>
<li>ci: build and test using 1.18 and 1.19 (drop 1.17) by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/812">ko-build/ko#812</a></li>
<li>removes repo move message by <a
href="https://github.com/mchmarny"><code>@​mchmarny</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/814">ko-build/ko#814</a></li>
<li>feat: write sbom result to disk by <a
href="https://github.com/developer-guy"><code>@​developer-guy</code></a>
in <a
href="https://redirect.github.com/ko-build/ko/pull/822">ko-build/ko#822</a></li>
<li>feat: adding support for using multiple keychain for sending sbom
results to a different repository by <a
href="https://github.com/developer-guy"><code>@​developer-guy</code></a>
in <a
href="https://redirect.github.com/ko-build/ko/pull/821">ko-build/ko#821</a></li>
<li>Move docs to ko.build by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/749">ko-build/ko#749</a></li>
<li>Update setup-ko version by <a
href="https://github.com/ianlewis"><code>@​ianlewis</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/836">ko-build/ko#836</a></li>
<li>Add -- usage in readme by <a
href="https://github.com/jwcesign"><code>@​jwcesign</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/840">ko-build/ko#840</a></li>
<li>add CONTRIBUTING, code of conduct, roadmap by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/837">ko-build/ko#837</a></li>
<li>attempt to fix GH Pages publishing by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/843">ko-build/ko#843</a></li>
<li>doc: fix link to Installation page in Getting Started by <a
href="https://github.com/antoineco"><code>@​antoineco</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/846">ko-build/ko#846</a></li>
<li>.ko.yaml: bump golang 1.18 -&gt; 1.19 by <a
href="https://github.com/srenatus"><code>@​srenatus</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/848">ko-build/ko#848</a></li>
<li>truncate -image-refs file by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/855">ko-build/ko#855</a></li>
<li>update docs: fix broken links, align with README by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/854">ko-build/ko#854</a></li>
<li>Handle KO_DOCKER_REPO=ko.local/repo and --bare correctly by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/820">ko-build/ko#820</a></li>
<li>another docs update by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/856">ko-build/ko#856</a></li>
<li>ko.build: support some common shortlinks by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/872">ko-build/ko#872</a></li>
<li>install: fail with 404 instead of gzip error when url was wrong by
<a href="https://github.com/grosser"><code>@​grosser</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/879">ko-build/ko#879</a></li>
<li>feat: deduplicate tags by <a
href="https://github.com/bluebrown"><code>@​bluebrown</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/884">ko-build/ko#884</a></li>
<li>install mkdocs-redirect when publishing site by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/873">ko-build/ko#873</a></li>
<li>nit: replace one-item slice with const by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/885">ko-build/ko#885</a></li>
<li>Temp fix for SLSA generators by <a
href="https://github.com/laurentsimon"><code>@​laurentsimon</code></a>
in <a
href="https://redirect.github.com/ko-build/ko/pull/886">ko-build/ko#886</a></li>
<li>Fix verifier by <a
href="https://github.com/laurentsimon"><code>@​laurentsimon</code></a>
in <a
href="https://redirect.github.com/ko-build/ko/pull/891">ko-build/ko#891</a></li>
<li>Fix link in static-assets.md by <a
href="https://github.com/yuryu"><code>@​yuryu</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/893">ko-build/ko#893</a></li>
<li>add KO_DEFAULTBASEIMAGE usage to docs by <a
href="https://github.com/developer-guy"><code>@​developer-guy</code></a>
in <a
href="https://redirect.github.com/ko-build/ko/pull/895">ko-build/ko#895</a></li>
<li>Publish an tagged image on release by <a
href="https://github.com/vdemeester"><code>@​vdemeester</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/868">ko-build/ko#868</a></li>
<li>Add option to configure default platforms by <a
href="https://github.com/ReToCode"><code>@​ReToCode</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/897">ko-build/ko#897</a></li>
<li>Fix broken SLSA link by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/899">ko-build/ko#899</a></li>
<li>add MAINTAINERS.md by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/905">ko-build/ko#905</a></li>
<li>fix: possible race condition when applying templates to
flags/ldflags by <a
href="https://github.com/caarlos0"><code>@​caarlos0</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/913">ko-build/ko#913</a></li>
<li>update docs to reflect actual default base image by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/903">ko-build/ko#903</a></li>
<li>remove repeated error message on failure by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/921">ko-build/ko#921</a></li>
<li>website: update CNCF announcement by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/920">ko-build/ko#920</a></li>
<li>fix KO_CONFIG_PATH pointing to a file by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/923">ko-build/ko#923</a></li>
<li>upgrade to cosign v2.0.0-rc.0 by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/933">ko-build/ko#933</a></li>
<li>Feature: Add ECR presubmit testing. by <a
href="https://github.com/mattmoor"><code>@​mattmoor</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/934">ko-build/ko#934</a></li>
<li>remove 'ko deps' by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/937">ko-build/ko#937</a></li>
<li>feat: Add KO_GO_PATH env var by <a
href="https://github.com/embano1"><code>@​embano1</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/930">ko-build/ko#930</a></li>
<li>add ko.build/slack short link by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/945">ko-build/ko#945</a></li>
<li>update link to ko goreleaser docs by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/936">ko-build/ko#936</a></li>
<li>add ko community meeting details by <a
href="https://github.com/developer-guy"><code>@​developer-guy</code></a>
in <a
href="https://redirect.github.com/ko-build/ko/pull/938">ko-build/ko#938</a></li>
<li>fix cosign by adding --yes by <a
href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/973">ko-build/ko#973</a></li>
<li>fix: handle docker's unknown/unknown platform in index manifests by
<a href="https://github.com/imjasonh"><code>@​imjasonh</code></a> in <a
href="https://redirect.github.com/ko-build/ko/pull/975">ko-build/ko#975</a></li>
<li>fix file extension for cyclonedx by <a
href="https://github.com/developer-guy"><code>@​developer-guy</code></a>
in <a
href="https://redirect.github.com/ko-build/ko/pull/974">ko-build/ko#974</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/ianlewis"><code>@​ianlewis</code></a>
made their first contribution in <a
href="https://redirect.github.com/ko-build/ko/pull/836">ko-build/ko#836</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e22e7a15ff"><code>e22e7a1</code></a>
bump ggcr dep to <a
href="https://github.com/main"><code>@​main</code></a> (<a
href="https://redirect.github.com/google/ko/issues/976">#976</a>)</li>
<li><a
href="8e075ae1f1"><code>8e075ae</code></a>
fix file extension for cyclonedx (<a
href="https://redirect.github.com/google/ko/issues/974">#974</a>)</li>
<li><a
href="11670b7498"><code>11670b7</code></a>
fix: handle docker's unknown/unknown platform in index manifests (<a
href="https://redirect.github.com/google/ko/issues/975">#975</a>)</li>
<li><a
href="7ce947817e"><code>7ce9478</code></a>
fix cosign by adding --yes (<a
href="https://redirect.github.com/google/ko/issues/973">#973</a>)</li>
<li><a
href="9302da78dc"><code>9302da7</code></a>
Bump k8s.io/apimachinery from 0.26.1 to 0.26.2 (<a
href="https://redirect.github.com/google/ko/issues/972">#972</a>)</li>
<li><a
href="a1588838ba"><code>a158883</code></a>
Bump sigstore/cosign-installer from 2.8.1 to 3.0.1 (<a
href="https://redirect.github.com/google/ko/issues/971">#971</a>)</li>
<li><a
href="86b6c2854f"><code>86b6c28</code></a>
Bump actions/checkout from 2 to 3 (<a
href="https://redirect.github.com/google/ko/issues/966">#966</a>)</li>
<li><a
href="0bd12fb106"><code>0bd12fb</code></a>
Bump slsa-framework/slsa-github-generator from 1.2.1 to 1.5.0 (<a
href="https://redirect.github.com/google/ko/issues/967">#967</a>)</li>
<li><a
href="d5125daacd"><code>d5125da</code></a>
Bump github.com/sigstore/cosign/v2 from 2.0.0-rc.2 to 2.0.0 (<a
href="https://redirect.github.com/google/ko/issues/965">#965</a>)</li>
<li><a
href="03f4aed682"><code>03f4aed</code></a>
add ko community meeting details (<a
href="https://redirect.github.com/google/ko/issues/938">#938</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/google/ko/compare/v0.12.0...v0.13.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/google/ko&package-manager=go_modules&previous-version=0.12.0&new-version=0.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-29 14:38:57 -03:00
Carlos A Becker
4ada24b6a8
refactor: remove unused function
refs f4fad65471
refs #3891

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-29 13:25:26 -03:00
Carlos A Becker
f4fad65471
fix: improve gpg.program detection, add more tests
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-29 13:23:23 -03:00
Carlos Alexandro Becker
9a97aaae99
fix: improve brew no archive error (#3895)
similar to #3894, but for homebrew

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-29 10:24:53 -03:00
Carlos Alexandro Becker
37e92ce2f1
fix: clarify scoop no windows error (#3894)
improve error message and related docs

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-29 10:18:40 -03:00
Go Compile
d83d362b96
fix(sign): use gpg path from git config by default if it is set (#3891)
Fixes issue #3890 by checking the user's git `gpg.program`
configuration. If the user didn't set this value it will use the default
"gpg", just like before this PR.

No need to add a additional unit test as your existing tests cover it
(mostly); however, a comment has been added to that check, informing the
reader that the test environment assumes `git config gpg.program` is not
be set.
2023-03-27 12:00:24 -03:00
Carlos Alexandro Becker
723484d157
fix: do not skip scoop on draft releases (#3889)
all other pipes don't, not sure why scoop was doing it.

closes #3887
2023-03-24 00:02:15 -03:00
Carlos Alexandro Becker
44f8fae305
feat: IsDraft template variable (#3888)
allows to use `{{ .IsDraft }}` in templates.

---------

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-24 00:01:48 -03:00
Carlos Alexandro Becker
f82a32cd3a
feat: blobs.disable (#3884)
Allows to template-disable specific blob configurations.

Closes #3883
2023-03-23 08:59:04 -03:00
Carlos A Becker
7229a0dab0
refactor: pipe.Skipf 2023-03-22 23:49:48 -03:00
Maxime Brunet
c47315fead
feat(ko): support labels and creation times (#3852)
* Add a `labels` key-value map to the `kos` config.
My interest is to be able to label the built images:
https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry#labelling-container-images
* Add creation times to allow using the commit timestamp as meaningful
creation time
2023-03-20 16:05:44 -03:00
Carlos A Becker
98eb6a2e98
test: fix gitlab test
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-20 09:29:14 -03:00
Carlos A Becker
a66fdd0718
test: fix deprecate test
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-20 09:29:14 -03:00
howieyuen
1f56d8e088
feat: scoop shortcuts (#3846)
close: https://github.com/goreleaser/goreleaser/issues/3845
2023-03-20 09:21:44 -03:00
Carlos A Becker
88f3aea086
refactor: improve tmpl mergeability with pro
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-19 23:32:33 -03:00
Carlos Alexandro Becker
590eff32d2
feat: .Now template variable (#3853)
This will allow more customized templates using dates!

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-19 22:21:43 -03:00
Ivan Vandot
8877fe1ef4
feat: include prerelease suffix in git (#3841)
<!--

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 commit will fix bad version tag sort if there is a prerelease on
the same commit as a release tag. Current output is shown below
```
❯ git tag --points-at HEAD --sort=-version:refname --format='%(creatordate)%09%(refname)'
Thu Mar 2 21:38:51 2023 +0300   refs/tags/v1.13.0-rc3
Thu Mar 2 21:38:51 2023 +0300   refs/tags/v1.13.0
```
Test is changed to match current default value so it will fail without
this fix.

Default value `-` is set to the one that is described inside
[docs](https://goreleaser.com/how-it-works/?h=prerelease#how-it-works),
but people are still allowed to change it.

Output with fix applied
```
❯ git -c versionsort.suffix=- tag --points-at HEAD --sort -version:refname --format='%(creatordate)%09%(refname)'
Thu Mar 2 21:38:51 2023 +0300   refs/tags/v1.13.0
Thu Mar 2 21:38:51 2023 +0300   refs/tags/v1.13.0-rc3
```

<!-- # Provide links to any relevant tickets, URLs or other resources
-->
More info about `versionsort.suffix` can be found
[here](https://github.com/git/git/blob/master/Documentation/config/versionsort.txt#L5)

Docs as well both schemas are updated as well.

I am not sure if users should be allowed to change this option at all.
2023-03-19 22:19:40 -03:00
Carlos A Becker
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
Maxime Brunet
53277590f5
fix(ko): disable SBOM when sbom is none (#3861) 2023-03-10 23:31:46 -03:00
Carlos Alexandro Becker
a40eb15618
feat: add base template function (#3834)
refs #3833

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-04 12:16:37 -03:00
Carlos Alexandro Becker
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
Carlos Alexandro Becker
874d698564
feat: add healthcheck cmd (#3826)
here's an idea: `goreleaser healthcheck`

It'll check if the needed dependencies (docker, git, etc) are available
in the path... this way users can preemptively run it before releasing
or to debug issues.

What do you think?

Here's how it looks like:

<img width="1007" alt="CleanShot 2023-03-02 at 23 24 26@2x"
src="https://user-images.githubusercontent.com/245435/222615682-d9cd0733-d900-43d1-9166-23b2be589b3a.png">

---------

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-03 09:50:15 -03:00
Carlos Alexandro Becker
b6dd26c091
feat: infer package name from go.mod (#3827)
If all other strategies fail, try to infer the `package_name` property
from the `go.mod` file, using its last segment as the actual package
name.

This is not perfect, but usually this will only be used when running
against a new project, with no git url, empty/default config, etc... so,
in reality, it'll rarely be used.

closes #3825

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-03 09:50:02 -03:00
Carlos Alexandro Becker
2920de7cec
feat: templateable changelog.skip (#3830)
closes #3828
2023-03-03 09:49:41 -03:00
Carlos Alexandro Becker
be3a1b22d4
fix: create temp docker outside dist (#3823)
Creating the temp dir for docker builds was required back in the day
because we symlinked the files, so to avoid different filesystems et al,
this was the easier solution.

Since many versions ago, we switched to copying the files instead, which
works a lot better.

This also means we don't need the dist check for extra files anymore, as
long as we create the temp outside dist.

All that said, this PR does 2 things:
- changes the docker pipe to create the dist in the user's tempdir
instead of dist
- removes the dist path check for docker's extra files

closes #3790
closes #3791
2023-03-02 21:01:33 -03:00
Carlos Alexandro Becker
9e21511300
feat: cosign update (#3821)
cosign v2 update!

- need to use `--yes` to auto-approve prompts

cc/ @cpanato anything else I'm missing?

---------

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-02 15:11:43 -03:00
Carlos Alexandro Becker
d5151a6eb0
feat: ConventionalExtension on nFPM (#3822)
closes  #3799

---------

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-02 14:35:55 -03:00
Carlos Alexandro Becker
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
Carlos Alexandro Becker
53838da8ac
fix: smtp mixup of env and yaml opts (#3815)
it was forcing to provide the same information as env and yaml.

this should fix it.

---------

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-01 01:38:53 -03:00
Carlos Alexandro Becker
acc9eea154
feat(deps): update env to v7 (#3814)
env v7!

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-01 01:20:37 -03:00
Carlos Alexandro Becker
2634fbdad4
fix: race condition on artifacts.List (#3813)
I have no idea why this never happened before... the lock was
ineffective in `artifacts.List`, which should have caused at least some
race condition at some point.

Anyway, got it once locally while working on another feature, and
couldn't believe my eyes.

Fixed, thank goodness!

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-01 01:05:30 -03:00
Carlos Alexandro Becker
4f7475eee1
fix: meta archives make the other archives be ignored (#3804) 2023-02-24 14:58:09 -03:00
Carlos Alexandro Becker
702164076d
fix: skip publish on exec (#3800) 2023-02-22 23:13:34 -03:00
Carlos Alexandro Becker
1aa984d006
fix: convert to forward slashes inside gio.Copy (#3794)
closes #3776

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-02-22 20:02:12 -03:00
Carlos Alexandro Becker
9dfa94cbb3
feat: scoop depends (#3797)
closes #3796

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-02-22 09:18:44 -03:00
Carlos Alexandro Becker
1858bace7e
fix: nfpm replacements deprecation (#3793)
closes  #3792

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-02-21 21:54:18 -03:00
Carlos Alexandro Becker
2c80588251
fix: better handle password protected keys (#3788)
password-protected keys would give path errors, which was simply not
right.

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-02-20 13:18:12 -03:00
John Olheiser
6c21b01586
feat: add OpenCollective (#3753)
This PR adds [OpenCollective](https://opencollective.com) as an
announcement pipeline.

![Screenshot from 2023-02-03
00-11-18](https://user-images.githubusercontent.com/42128690/216525902-31e1f358-3c3d-4c1c-9d71-402170a8a0e6.png)

---------

Signed-off-by: jolheiser <john.olheiser@gmail.com>
Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-02-09 09:11:47 -03:00
Carlos Alexandro Becker
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
Christoph Witzko
90d8324971
fix(gitlab): correctly prepend/append/keep releases notes (#3765)
Hi, I found a bug in the GitLab client that leads to not correctly
prepend/append/keep releases notes.

This will use the original `Description` instead of the pre-rendered
`DescriptionHTML`. Furthermore, as `include_html_description` is not
enabled, the `DescriptionHTML` field is always empty.

[GitLab
documentation](https://docs.gitlab.com/ee/api/releases/index.html#get-a-release-by-a-tag-name)
2023-02-07 11:19:19 -03:00
Carlos Alexandro Becker
15adfc8372
test: fix exec tests on go 1.20 (#3764)
otherwise we might get warnings like

> warning: GOCOVERDIR not set, no coverage data emitted

---------

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-02-07 10:39:48 -03:00
Carlos Alexandro Becker
81914757da
build: use go1.20 (#3757)
update everything to go 1.20

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-05 13:39:39 -03:00
Carlos Alexandro Becker
7c6bd86b28
fix: do not do fancy 3rd party process logging (#3747)
do not write fields et al, let it just roll, otherwise its too noisy,
and we might expose things we are not supposed to.

closes #3741

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-02-01 23:25:36 -03:00
Kamesh Sampath
f22987a026
fix: honouring ko bare option (#3743)
The commit will add the `bare` option to ko publisher options when
set/passed via config `.goreleaser.yaml`.

Currently, even the `bare: true` is set via config, the option was never
passed to `ko` PublisherOptions.

#3742

---------

Co-authored-by: Batuhan Apaydın <batuhan.apaydin@trendyol.com>
2023-02-01 19:46:38 -03:00
Carlos Alexandro Becker
4954815ae4
fix: improve handling of --rm-dist deprecation (#3728)
- improved how we handle `--rm-dist` deprecation so it looks more like
other deprecations
- improved deprecation error message a bit as well

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-01-29 00:24:11 -03:00
Carlos Alexandro Becker
90a82157ca
refactor: improve tmpls that eval to a bool (#3726)
- added a tmpl.Bool that checks if the result of a template is "true"
- added an ErrSkipper interface so Skip() methods can return errors as well

---------

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-01-28 23:21:43 -03:00