this drives it home by using the actual images/manifest digests to sign
with cosign by default.
the default signing command is changing in this PR, but since `digest`
should be always there (if not, the pipeline will fail way earlier), it
should be fine.
refs https://github.com/goreleaser/goreleaser/issues/3496
refs https://github.com/goreleaser/goreleaser/pull/3540
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
This PR adds support for generating the structure used to pack and push
Chocolatey Packages. And will solve the #3154
Is not ready for merge yet, but has the main structure, and ready for
comments.
Accordingly to Chocolatey, in order to build a package, it's necessary a
`.nuspec` and `chocolateyinstall.ps1` files at least, having these ones,
we could pack and distribute without adding the binary inside the final
package and that was implemented here.
To complete, will be necessary to define the package build and
distribute, however will be required to have Chocolatey installed
(Windows Only). One of alternatives that I thought was, publish the
files like Scoop and Brew in a separate repository, and there we could
use `chocolatey` through
[crazy-max/ghaction-chocolatey](https://github.com/crazy-max/ghaction-chocolatey).
Chocolatey has a lot of good examples of repositories:
https://github.com/chocolatey-community/chocolatey-packages/tree/master/automatic/curl
A final compilation of the missing parts:
- [x] How to pack and push (chocolatey)
- [x] Documentation
Sorry for the long description😄
All feedback very welcome!
Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
<!--
Hi, thanks for contributing!
Please make sure you read our CONTRIBUTING guide.
Also, add tests and the respective documentation changes as well.
-->
<!-- If applied, this commit will... -->
This PR improves the handling of shared or static libraries by
GoReleaser. It uses the default behaviour of the Go compiler by
appending the right extension to libraries.
* `.so` and `.a` for Linux shared libraries and static libraries
respectively
* `.dylib` and `.a.` on Darwin
* `.dll` and `.lib` on Windows (pre-existent)
It does not add any configuration option to `.goreleaser.yml`, since it
leverages the existing `buildmode` flag.
Additionally, this PR takes care of adding the generated header file
into the archive.
<!-- Why is this change being made? -->
Personally I would leverage this change to release some software both as
a CLI and as a shared library. I believe others who use CGo or need
interoperability with Go from other languages could benefit from this.
<!-- # Provide links to any relevant tickets, URLs or other resources
-->
This was previously discussed in #3497.
I couldn't quite think of a proper way to add some tests to the header
archiving feature. Any recommendation?
Fix the regular expressions used in changelog group processing to valid
golang (RE2) regexps. These previously used PCRE character class `\w`
which is not supported in RE2 which is what golang regexp uses.
Also document that format matches not just title as some may thing but
the format `<abbrev-commit> <title-commit>`.
<!--
Hi, thanks for contributing!
Please make sure you read our CONTRIBUTING guide.
Also, add tests and the respective documentation changes as well.
-->
<!-- If applied, this commit will... -->
This PR implements the Archlinux packages that were added in nfpm
v2.20.0, as well as tests and documentation for them.
<!-- Why is this change being made? -->
<!-- # Provide links to any relevant tickets, URLs or other resources
-->
goreleaser/nfpm#133
goreleaser/nfpm#543
Fixes#3469
Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
closes#3508
- adds template support for krew and scoop repo refs
- template branch on reporef on brew as well
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
This PR adds explicit mention of Gitea in the AUR, Homebrew and Scoop
sections.
I have tested and tried using Homebrew and Scoop with a Gitea instance,
I have not tried the AUR but it should work the same.
Set MarkdownV2 as parse mode for Telegram announcer.
This allows for additional formatting in the announcement, such as
`code` or _italic_ sections. For details, see the official [Telegram Bot
API](https://core.telegram.org/bots/api#markdownv2-style).
If someone has the time (not added in this PR), I think it would be
great to add a field to the Telegram config for the parse mode. This
would allow setting a different parse mode than MarkdownV2, such as
HTML.
This fixes#3431.
<!--
Hi, thanks for contributing!
Please make sure you read our CONTRIBUTING guide.
Also, add tests and the respective documentation changes as well.
-->
## If applied, this commit will...
This PR fixes one line in the `homebrew` example section.
## Why is this change being made?
In the example of the `homebrew` section, the `url_template` value seems
to be wrong.
- docs on how to specify the schema to the lang server
- add it automatically along with vim modelines to the init config
- added it to our config as well
this should prevent some "out of date" schema issues, as well as mixing
tabs with spaces and whatnot when an editorconfig plugin is not
installed.
versioned all new options since v1.2 (late 2021).
Should be enough to fix#3317 for now.
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
this allows the user to specify the abbrev lenght to use, and will also add the option to omit the commit hash altogether by setting it to -1.
default is doing nothing
closes#3348
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
`--add-file` adds only the `--prefix` joined with the basename of the added file, so, adding a folder like `vendor` would break havoc.
this basically writes our own source archives (which are more compressed) and allows to add an entire folder easily, as well as other mappings as `archives` already supports.
refs #3102#2911
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
We should not imply the target_commitish, as some users might want to
have the code in one repo and the releases in another (e.g. private
code, public releases), so the commit might not be there.
We should instead allow the user to set the `target_commitish` (or not),
and pass it down to the github api.
refs 95bba02211
refs #3044
refs #3330
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
termux support, built from #3258 :
minor code changes
support for 386 as well
docs
tests
closes#3118closes#3258
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
Co-authored-by: rsteube <rsteube@users.noreply.github.com>
* feat: add version for homebrew dependencies
* resolve conflicts
* resolve conflicts
* feat: allow to specify version of brew deps
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
* docs: brew
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
Co-authored-by: Purushotham <purushotham@hasura.io>
* feat: strip_parent_binary_folder
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
* docs: clarify dir
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
* fix: fmt
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
* Support mTLS with client certificate when configured.
* Fix the omitempty typo.
* Add check for missing cert as well.
* Added documentation for artifactory and upload, as well as how to run mkdocs locally
* set pip version to just 3.
* Added example to the full config.
* Remove the Pipfile and update documentation to mention the task.
* update language in doc about multiarch images.
Co-authored-by: Sheridan C Rawlins <scr@ouryahoo.com>
* Always strip parents.
* refactor: improve code a bit
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
* refactor: even simpler
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
Co-authored-by: Nathan Hammond <nathan.hammond@vercel.com>
`cosign sign` complains with the following error when using `--output`
⨯ release failed after 14.73s error=sign: cosign failed: exit status 1: WARNING: the '--output' flag is deprecated and will be removed in the future. Use '--output-signature'
* feat: allow to override env for a target
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
* fix: dupe key
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
* test: fixes
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
* Make sure to do required go mod init before continuing or goreleaser command fails.
* how the release might look like -> what the release might look like
* How does it look like -> What does it look like
* you must therefore -> you must
* Don't use GO111MODULES in example since it's so obsolete
* modules -> verifiable builds
* got you covered -> has you covered
* docs: fix several htmltest issues
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* docs: more fixes
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
- on universal binaries, use the build id instead of the binary name to
create the folder in the dist folder
- on builds, default the id the to the binary name instead of project
name. The binary name already defaults to the project id if empty, so
this should only prevent having to specify the id + binary name in
some cases.
closes#3061
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: add builds.no_main_check and builds.command
Added two more options to the builds section:
- command: allow to override the command being run. E.g. instead of
`go build`, one could run `go test -c` by setting gobinary, command
and flags, respectively.
- no_main_check: by default, goreleaser will fail if there's no main
function. This option allows to disable that check.
This PR effectively make GoReleaser able to release Go test binaries
instead of just "regular" binaries.
closes#3037
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* test: fix broken tests
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
It was just allowing v2 and v3 due to some misreading on my side.
This commit fixes it to allow v1, v2, v3 and v4.
refs #3016
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: deprecate gofish
gofish was deprecated by its authors, this deprecates it here too
refs https://github.com/goreleaser/goreleaser/discussions/2998
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: do not publish rig anymore
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* docs: remove install
* chore: deprecate
* fix(gofish): fix broke logs
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat(announce): added Slack notification options
This feature adds support for specifying a richer content in Slack
announcements. We may now specify "blocks" and "attachments" to produce
better-looking announcement messages.
* fixes#2986
The goreleaser configuration only exposes the top-level structures and does not
check the validity of the Slack API internal structures. This way, we do
not inject hard dependencies on changes in the Slack API.
Notice: untyped config parsing introduces a little hack to have yaml and
JSON marshaling work together properly. This hack won't be necessary
with yaml.v3.
How this has been tested?
-------------------------
* Added unit tests for the config parsing
* Added a (skipped) e2e test.
For now, this requires a valid Slack webhook, so I've been able to test this manually.
Signed-off-by: Frederic BIDON <fredbi@yahoo.com>
* added more unit tests
Signed-off-by: Frederic BIDON <fredbi@yahoo.com>
* removed yaml.v2 hack
Signed-off-by: Frederic BIDON <fredbi@yahoo.com>
The idea is to be able to filter by extension and send each extension to
a different place, if needed.
This also affects the artifactory pipe.
Also updated artifactory docs a bit.
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
this allows to set the -mod flag on the command used to grab the module
root package, in case its needed to ignore the vendor folder, force
readonly, etc...
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: annotated tag body
this adds another template variable, `TagBody`, with the body of the annotated tag/commit message only.
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* refactor: tag contents
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: add grep and grep -v template functions
this adds `grep` and `reverseGrep` template functions, which should help dealing with text.
refs #2920
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* refactor: rename funcs
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
/usr/local/bin is intended for binaries compiled locally, which is never
the case for goreleaser.
this changes the default to /usr/bin instead.
closes#2909
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: lintian overrides
allow to more easily set lintian overrides
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: lintian
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: allow to use .Path and .Name on universal binary post hooks
This allows the usage of `{{ .Path }}` and `{{ .Name }}` on post
templates.
Closes#2890
* docs: improve docs
* test: add more tests
* feat: allow to override build flags by goos/goarch/etc
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* test: improve
* fix: typos
* feat: templates, merges
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* test: fix
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* test: one more case
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* Update internal/builders/golang/build.go
Co-authored-by: Brian Flad <bflad417@gmail.com>
* Update internal/builders/golang/build.go
Co-authored-by: Brian Flad <bflad417@gmail.com>
* test: more tests
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
Co-authored-by: Brian Flad <bflad417@gmail.com>
* feat: expose runtime goos and goarch on templates and metadata
* test: fix duplicated map literal in some os/arch
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: aur PKGBUILD integration
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: guess install, improve formatting
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: more deterministic
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: binary releases, push, more tests
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: accept key as text
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: improvements
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: srcinfo
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: compile
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: everything
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: lint
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: renames, docs, etc
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* docs: link to docs
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: go mod tidy, title
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: srcinfo tmpl
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: missing close quote
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: templates
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: always defaults conflicts and provides
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: ssh command
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: maintainers can be a list
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: ensure -bin suffix, more tests and docs
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: this will never happen
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: whitespaces
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: goreleaser config
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: allow to template dockerfile
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* test: added one more test
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: allow to always log signing output
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: improve code a bit
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: allow to customize release notes update behavior
closes#1384
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: make it a bit better
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: jsonschema
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: expose .PreviousTag
* fix: previous tag will never be a commit
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: tests
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* docs: tag
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: artifacts.Remove
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: fatbinary
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: run fatbinary on pipeline
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: make archives work with fat binaries
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: make brew work with fat binaries
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: make gofish work with fat binaries
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* test: archive binary fatbin
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* docs: fat binaries
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* test: fix on linux
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat(ci): enable fat bins on goreleaser itself
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* refactor: rename to universal binaries
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: config
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: rename prop
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
When using the announce feature, you might want to inform your users about the features and changes that this release brings. This change allows you to use {{ .ReleaseNotes }} in any template string, after the changelog pipeline step has been executed.
* feat: changelog from github
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* refactor: unifying client mocks
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* refactor: unifying client mocks
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: mocks
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* test: added tests
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: remove unused code
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* test: added more
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: testdata
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* fix: fmt
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* test: fix
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* test: fix
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* docs: improve docs
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
* feat: allow default branch to be used in gitlab
* feat: add func to get default branch
* fix: matching branch args
* feat: branch customization
* fix: fixing dummyclient naming
* refactor: remove createbranch
* feat: Adding gitlab branch customization
* feat: testing for github and gitea defaultbranch
* fix: remove dummy debug message
* fix: removing note about gitea not being supported
* feat: allow default branch to be used in gitlab
* docs: links updat
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* chore: delete kodiak.yml
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* feat: add func to get default branch
* fix: matching branch args
* feat: branch customization
* fix: docs: Missing mattermost docs on website (#2543)
* docs: update CircleCI example (#2545)
* fix: fixing dummyclient naming
* docs: some little fixes on the webpage (#2547)
* feat: some little fixes on the webpage
Signed-off-by: Batuhan Apaydın <batuhan.apaydin@trendyol.com>
* Update www/docs/overrides/home.html
Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* refactor: remove unused not impl error (#2540)
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* feat: add template support for homebrew tap owner (#2544)
* feat: add template support for homebrew tap name
refs #2544
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* refactor: remove createbranch
* feat: Adding gitlab branch customization
* feat: testing for github and gitea defaultbranch
* fix: remove dummy debug message
* fix: removing note about gitea not being supported
Co-authored-by: Carlos Alexandro Becker <caarlos0@gmail.com>
Co-authored-by: Engin Diri <engin.diri@mail.schwarz>
Co-authored-by: Ricardo N Feliciano <FelicianoTech@gmail.com>
Co-authored-by: Batuhan Apaydın <batuhan.apaydin@trendyol.com>
Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Co-authored-by: Erik Weber <terbolous@gmail.com>
* feat: allow to skip announcers
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* docs: announce.skip
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* docs: improve customization section
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: improve docs
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: ignore edit urls in htmltest
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* feat: Add support for templating NFPM bindir
Example: Allow software to be deployed in '/usr/lib64' directory on x86_64 arch
and in '/usr/lib' directory in i386
* test: invalid bindir template
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* docs: bindir template
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
Co-authored-by: Rémi Ferrand <remi.ferrand@cc.in2p3.fr>