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

91 Commits

Author SHA1 Message Date
Kazuki Matsumaru
b495c905d5
fix: set parallelism to match Linux container CPU (#3901)
<!--

Hi, thanks for contributing!

Please make sure you read our CONTRIBUTING guide.

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

-->

Currently Goreleaser uses `runtime.NumCPU()` as the default value if
`--parallelism` is not set.
However, this will get the number of CPUs on the host even when
Goreleaser is run in a container with a limit on the maximum number of
CPUs that can be used (typically in a Kubernetes pod).
Actually, `docker run --cpus=1 goreleaser/goreleaser --debug` shows
`parallelism: 4` on my machine.
This behavior causes CPU throttling, which increases execution time and,
in the worst case, terminates with an error.
I ran into this problem with Jenkins where the agent runs on pod
([Kubernetes plugin for
Jenkins](https://plugins.jenkins.io/kubernetes/)).

This commit introduces
[automaxprocs](https://github.com/uber-go/automaxprocs) to fix this
issue.
This library sets `GOMAXPROCS` to match Linux container CPU quota.
I have also looked for a library that can get CPU quota more directly,
but this seems to be the best I could find.
The reason it is set in a different notation from the automaxprocs
README is to prevent logs from being displayed
([comment](https://github.com/uber-go/automaxprocs/issues/18#issuecomment-511330567)).

I would have liked to write a test, but this change is dependent on the
number of CPUs in the execution environment, so I could not.
Instead, I wrote a Dockerfile for testing

```Dockerfile
FROM golang:1.20.2

WORKDIR /go/app
RUN sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin
COPY . .
RUN task build
```

and confirmed built binary shows expected parallelism by following
commands:

```sh
docker build --file Dockerfile.test . -t test-goreleaser
docker run --cpus=1 test-goreleaser ./goreleaser build --snapshot --debug # parallelism: 1
docker run test-goreleaser ./goreleaser build --snapshot --debug # parallelism: 4
```

I also ran the built binary on my Macbook and it was fine.
2023-04-02 17:16:41 -03:00
Carlos A Becker
4c44ecedf8
docs: updates
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-03 12:57:54 -03:00
Carlos A Becker
68cd12b506
test: use ErrorIs
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-03 10:36:45 -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
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
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 A Becker
b1dc5b8daf
chore: comment
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-01-30 21:35:27 -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
d18adfb57e
feat: deprecate --rm-dist in favor of new --clean flag (#3702)
After talking with @perylemke, we realized that probably most people
will likely expect it to be called --clean instead of --rm-dist, as its
more similar to the popular `make clean` task.

This adds the --clean flag, and make the --rm-dist one deprecated.

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-01-20 23:47:08 -03:00
Carlos Alexandro Becker
2450746e5c
feat: add ko support (#3653)
continuing the PR by @developer-guy 


- [x] should be a publisher, as it does publish the images it builds
every time
- [x] `Default` method does not work
- [x] the `fromConfig` thing should probably be on the defaults, too
- [x] wire `--skip-ko`
- [x] documentation
- [x] more tests
- [x] use same registry as docker tests does
- [ ] see if we can make the log output match goreleaser's
- [ ] ??

closes #2556
closes #3490

Signed-off-by: Batuhan Apaydın <batuhan.apaydin@trendyol.com>
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
Co-authored-by: actions-user <actions@github.com>
Co-authored-by: Jason Hall <jason@chainguard.dev>
Co-authored-by: Batuhan Apaydın <batuhan.apaydin@trendyol.com>
2023-01-16 22:34:49 -03:00
Carlos Alexandro Becker
da2335791a
fix: native changeloger without previous tag (#3668)
closes #3662

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-12-29 10:41:59 -03:00
Carlos Alexandro Becker
e54656438b
feat: deprecate replacements (#3589)
The replacements thing was always a bit weird, especially on archives.

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

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

Closes #3588

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-11-25 15:26:14 -03:00
Carlos Alexandro Becker
6279e1a431
fix: annotate flags so they complete better (#3444) 2022-10-06 11:24:13 +02:00
Carlos Alexandro Becker
a8b3806e7e
refactory: making merges with pro easier (#3400)
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-09-25 18:19:53 -03:00
Carlos Alexandro Becker
0ea3e0f572
fix: build --single-target when using specific targets (#3381)
When using specific targets in the config, single target becomes
ineffective. This should fix it. This also removes other build options
like gomips, goarm, goamd64, etc, as go will infer them from the current
OS. In theory we should one day support all the GO* flags go build
supports.
2022-09-15 22:17:40 -03:00
Carlos Alexandro Becker
8cb4eb1654
fix: ruleguard and semgrep scans and fixes (#3364)
run semgrep-go ruleguard and semgrep scans

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

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-09-11 15:32:23 -03:00
Engin Diri
fac8135b6b
feat: add fig autocomplete support (#3329)
This PR releates to #3328 and fix the first part of the doings in the issue
2022-08-21 21:28:57 -03:00
Carlos A Becker
ce264f1fca
fix: jsonschema
very hacky, fixes #3238 for good

refs https://github.com/invopop/jsonschema/issues/26

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-08-17 23:50:14 -03:00
Carlos Alexandro Becker
ee17c9583d
feat(ci): compile with go 1.19 (#3278)
* feat(ci): compile with go 1.19

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

* test: fixing template test

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

* test: improve check

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

* fix: more test and docs fixes

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

* test: fix

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

* test: fix

* test: fix

* fix: lint

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

* test: docker templates

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

* fix: godoc for RequireTemplateError
2022-08-06 18:44:23 -03:00
Carlos A Becker
731f43b80e
test: fix test
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-08-04 15:37:19 -03:00
Carlos A Becker
d22d67d923
fix: clarifying build --single-target
Make it more clear that it will override whatever is defined in the yaml
config.
fix: clarifying build --single-target

Make it more clear that it will override whatever is defined in the yaml
config.

refs #3265

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-07-28 22:30:43 -03:00
Carlos Alexandro Becker
f24f1a0a70
fix: improve output on github actions (#3221)
* fix: improve output on github actions

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

* fix: log

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

* test: force ascii

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-07-04 16:12:24 -03:00
Carlos Alexandro Becker
cf3c758356
feat: allow multiple ids to be passed to build (#3212)
* Allow multiple ids to be passed to build

goreleaser build --id build 1 --id build2

* addressing cr

* addressing cr

* fix: rename to ids

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

* fix: improve output

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

Co-authored-by: JD <jdpcbs@gmail.com>
2022-06-28 23:37:38 -03:00
Carlos Alexandro Becker
4162772819
feat: allow to load config from stdin (#3175)
allows to load the config from stdin, so things like:

```sh
cat .goreleaser.yml | sed 's/something/else/g' | goreleaser release -f -
```

will now work.

closes #3125

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-06-22 22:03:00 -03:00
Carlos Alexandro Becker
d79484ef1d
feat: added --skip-before flag (#3182)
* feat: added --skip-before flag

this would allow to skip global before hooks

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

* fix: skip docker test

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-06-22 21:56:53 -03:00
Carlos Alexandro Becker
ae399220ef
feat: add --skip-docker (#3176)
Allow to skip the entire docker images and manifests builds.

Might be useful for faster local builds et al.

closes #3144

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-06-22 21:39:20 -03:00
Carlos Alexandro Becker
9efea360b9
refactory: make easier to manage merges with pro (#3178)
* refactory: improve cmd code

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

* fix: improve time reporting

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

* fix: improve artifacts json

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

* fix: improve artifacts json

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

* fix: diffs

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

* docs: improve root cmd help

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-06-22 01:48:11 -03:00
Carlos Alexandro Becker
fe7e2123bd
feat: replacing the log library (#3139)
* 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>
2022-06-21 21:11:15 -03:00
Carlos Alexandro Becker
ad3c6fdcdd
feat: update jsonschema library (#3159)
* feat: update jsonschema library

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

* fix: test

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-06-12 22:31:30 -03:00
Carlos A Becker
d1291650f2
feat: migrate back to cobra
now that cobra does not require a lot of unused deps because of viper anymore, we can migrate back to it.

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-05-06 20:38:50 -03:00
Andreas Deininger
38bc6b504e
docs: fix typos (#3054) 2022-04-19 19:34:24 -03:00
Carlos A Becker
0ba753c496
fix: man pages
closes #3048

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-04-16 15:31:43 -03:00
Carlos Alexandro Becker
ce9058ac8c
refactor: use context on git exec calls (#3032) 2022-04-12 08:35:19 -03:00
Carlos Alexandro Becker
3c4e797150
feat: upgrade to go 1.18 (#2978)
* feat: upgrade to go 1.18

* chore: go mod tidy

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

* test: fix

* fix: more updates

* test: fix test
2022-03-16 21:51:48 -03:00
Carlos A Becker
67382ee69e
fix: typo in goreleaser build help 2022-02-25 22:04:46 -03:00
Carlos Alexandro Becker
d6813ce54d
fix: do not copy binary by default (#2916)
* fix: do not copy binary by default

closes #2913

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

* chore: ref

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-02-19 15:10:37 -03:00
Carlos Alexandro Becker
c42a2fdc76
feat: allow a --output flag on goreleaser build (#2701)
* feat: allow a --output flag on goreleaser build

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

* fix: single build always to copies to root

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-02-05 18:19:12 -03:00
Carlos Alexandro Becker
a5d3e7bf4b
feat: replace cobra with coral (#2881)
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-02-04 16:31:19 -03:00
Christian Muehlhaeuser
b7706b2fd8
feat: bump mango and adapt to changed API (#2865) 2022-01-31 23:44:25 -03:00
Carlos A Becker
7085b4c557
docs: improve docs for changelog skipping
closes #2601
2022-01-30 11:28:00 -03:00
Carlos Alexandro Becker
ae583453a7
feat: manpages (#2837)
* feat: manpages

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

* fix: section

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

* feat: use mango instead

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

* fix: improvements

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

* fix: unused

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-01-18 10:17:52 -03:00
Engin Diri
a19ee5fc42
docs: rename in the docs goreleaser.yml to goreleaser.yaml (#2784) 2021-12-22 21:52:01 -03:00
Alex Goodman
bfdec808ab
feat: add sbom generation pipe (#2648)
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2021-12-12 00:21:51 -03:00
Weslei Juan Novaes Pereira
f9687b482a
feat: rename yml to yaml in init command (#2719) 2021-12-04 14:07:55 -03:00
Carlos Alexandro Becker
ecb800aef7
feat: store artifact list into dist/artifacts.json (#2715)
* feat: store artifact list into dist/artifacts.json

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

* chore: fmt

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-12-01 09:54:58 -03:00
Carlos A Becker
eb4bee7f13
docs: improve goreleaser build readme
refs #2710

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-11-30 10:41:05 -03:00
Patrick Hahn
e5a9e18050
feat(schema): add command that generates jsonschema (#2589)
* feat(schema): Add command that generates the jsonschema for .goreleaser.yml files

This commit adds the jsonschema/schema subcommand that generates a jsonschema doc based on the Project go struct.
For the config types that alternatively allow you to specify a string via custom UnmarshalYAML function, this commit adds the JSONSchemaType function, so the type gets documented with an oneOf with string or itself.
Add yaml key names for properties that are currently missing them, so alecthomas/jsonschema generates the keys with correct casing.

Signed-off-by: Patrick Hahn <patricksilashahn@gmx.net>

* fix: Add linguist-generated attribute to generated schema json to exclude this file from pull request size validation

Signed-off-by: Patrick Hahn <patricksilashahn@gmx.net>

* fix: run gofumpt

Signed-off-by: Patrick Hahn <patricksilashahn@gmx.net>

* chore(schema): update alecthomas/jsonschema and regenerate schema.json

Signed-off-by: Patrick Hahn <patricksilashahn@gmx.net>
2021-10-26 15:02:03 -03:00
Carlos Alexandro Becker
833db79bda
feat: removes deprecated non-semver allowance (#2503)
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2021-09-23 00:39:28 -03:00
Carlos Alexandro Becker
7c8c942b36
chore: fix wording
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2021-09-22 01:21:33 -03:00
Carlos Alexandro Becker
61bead8989
feat: improve output and pipe skipping (#2480)
* refactor: improve middleware

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

* fix: upload tests

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

* fix: twitter tests

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

* fix: source tests

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

* fix: snapshot tests

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

* test: improved some tests

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

* fix: snapcraft skip

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

* fix: skip slack

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

* fix: skip sign

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

* fix: skip scoop

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

* fix: skip reddit

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

* fix: skip discord

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

* fix: skip publish

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

* fix: skip nfpm

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

* fix: skip milestone

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

* fix: skip custompublishers

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

* fix: skip checksums

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

* fix: skip changelog

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

* fix: skip brew

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

* fix: skip blob

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

* fix: skip before

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

* fix: skip artifactory

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

* fix: skip announce

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

* fix: skip defaults

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

* fix: cmds

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

* fix: skip docker

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

* chore: todo

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

* fix: go.mod

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

* fix: skip release

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

* fix: remove old skip pipe errors

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

* fix: skip teams

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

* fix: skip brew

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

* fix/test: skip smtp

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

* fix: lint issues

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

* fix: skip docker

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

* fix: skip brew and scoop

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

* fix: skip docker

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

* fix: skip http/artifactory

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

* test: increase coverage

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

* test: fix

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2021-09-18 10:21:29 -03:00