1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-04-07 07:10:11 +02:00

docs: version recent changes (#3367)

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 commit is contained in:
Carlos Alexandro Becker 2022-09-11 16:54:51 -03:00 committed by GitHub
parent c7bb924e44
commit 61f586e625
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 168 additions and 70 deletions

View File

@ -1,5 +1,7 @@
# Webhook
Since: v1.3.
Webhooks are a way to receive notifications. With this `Goreleaser` functionality, you can send events to any server
exposing a webhook.

View File

@ -27,7 +27,9 @@ archives:
# This will create an archive without any binaries, only the files are there.
# The name template must not contain any references to `Os`, `Arch` and etc, since the archive will be meta.
# Default is false.
#
# Default: false.
# Since: v1.9.
meta: true
# Archive name template.
@ -60,7 +62,8 @@ archives:
#
# This might be useful if you have your binary be built with a subdir for some reason, but do no want that subdir inside the archive.
#
# Default is false.
# Default: false.
# Since: v1.11.
strip_parent_binary_folder: true
# Can be used to change the archive formats for specific GOOSs.

View File

@ -147,7 +147,9 @@ artifactories:
# This might be useful if you have multiple packages with different
# extensions with the same ID, and need to upload each extension to
# a different place (e.g. nFPM packages).
# Default is empty.
#
# Default: empty.
# Since: v1.7.
exts:
- deb
- rpm
@ -165,6 +167,7 @@ artifactories:
username: deployuser
# Client certificate and key (when provided, added as client cert to TLS connections)
# Since: v1.11.
client_x509_cert: /path/to/client.cert.pem
client_x509_key: /path/to/client.key.pem

View File

@ -1,5 +1,7 @@
# Arch User Repositories
Since: v1.4.
After releasing to GitHub or GitLab, GoReleaser can generate and publish
a `PKGBUILD` to an _Arch User Repository_.

View File

@ -116,8 +116,8 @@ builds:
# Format is `{goos}_{goarch}` with optionally a suffix with `_{goarm}`, `_{goamd64}` or `_{gomips}`.
#
# Special values:
# - go_118_first_class: evaluates to the first-class targets of go1.18
# - go_first_class: evaluates to latest stable go first-class targets, currently same as 1.18.
# - go_118_first_class: evaluates to the first-class targets of go1.18. Since GoReleaser v1.9.
# - go_first_class: evaluates to latest stable go first-class targets, currently same as 1.18. Since GoReleaser v1.9.
#
# This overrides `goos`, `goarch`, `goarm`, `gomips`, `goamd64` and `ignores`.
targets:
@ -138,7 +138,8 @@ builds:
# in which case you can set this to "test".
# It is safe to ignore this option in most cases.
#
# Default is "build".
# Default: build.
# Since: v1.9.
command: test
# Set the modified timestamp on the output binary, typically
@ -172,7 +173,8 @@ builds:
# By default, GoReleaser will check if the main filepath has a main function.
# This can be used to skip that check, in case you're building tests, for example.
#
# Defaults to `false`.
# Default: false.
# Since: v1.9.
no_main_check: true
# Path to project's (sub)directory containing Go code.
@ -193,7 +195,8 @@ builds:
# This can be specially useful when using CGO.
# Note: it'll only match if the full target matches.
#
# Defaults to empty.
# Default: empty.
# Since: v1.5.
overrides:
- goos: darwin
goarch: arm64
@ -320,7 +323,7 @@ builds:
pre:
- cmd: first-script.sh
dir: "{{ dir .Dist}}"
output: true # always print command output, otherwise only visible in debug mode
output: true # always print command output, otherwise only visible in debug mode. Since GoReleaser v1.5.
env:
- HOOK_SPECIFIC_VAR={{ .Env.GLOBAL_VAR }}
- second-script.sh

View File

@ -33,7 +33,8 @@ changelog:
# -1: remove the commit hash from the changelog
# any other number: max length.
#
# Default is 0.
# Default: 0.
# Since: v1.11.2
abbrev: -1
# Group commits messages by given regex and title.

View File

@ -65,7 +65,8 @@ docker_signs:
# By default, the stdout and stderr of the signing cmd are discarded unless GoReleaser is running with `--debug` set.
# You can set this to true if you want them to be displayed regardless.
#
# Defaults to false
# Default: false.
# Since: v1.2.
output: true
```

View File

@ -133,6 +133,8 @@ brews:
...
# Service block.
#
# Since: v1.7.
service: |
run: foo/bar
...

View File

@ -38,7 +38,7 @@ GoReleaser allows this with the global hooks feature.
- make clean # simple string
- cmd: go generate ./... # specify cmd
- cmd: go mod tidy
output: true # always prints command output
output: true # always prints command output. Since GoReleaser v1.5.
dir: ./submodule # specify command working directory
- cmd: touch {{ .Env.FILE_TO_TOUCH }}
env:

View File

@ -66,7 +66,7 @@ nfpms:
- apk
- deb
- rpm
- termux.deb
- termux.deb # Since GoReleaser v1.11.
# Packages your package depends on. (overridable)
dependencies:
@ -74,6 +74,7 @@ nfpms:
- zsh
# Packages it provides. (overridable)
# Since: v1.11.
provides:
- bar
@ -135,6 +136,8 @@ nfpms:
# formats (deb and rpm at the moment).
#
# Experimental.
# Default: empty.
# Since: v1.11.
changelog: ./foo.yml
# Contents to add to the package.

View File

@ -31,14 +31,18 @@ release:
# Whether to remove existing draft releases with the same name before creating a new one.
# Only effective if `draft` is set to true.
# Available only for GitHub.
# Default is false.
#
# Default: false.
# Since: v1.11.
replace_existing_draft: true
# Useful if you want to delay the creation of the tag in the remote.
# You can create the tag locally, but not push it, and run GoReleaser.
# It'll then set the `target_commitish` portion of the GitHub release to the value of this field.
# Only works on GitHub.
# Default is empty.
#
# Default: empty.
# Since: v1.11.
target_commitish: '{{ .Commit }}'
# If set, will create a release discussion in the category specified.
@ -93,7 +97,8 @@ release:
# Set this to true if you want to disable just the artifact upload to the SCM.
# If this is true, GoReleaser will still create the release with the changelog, but won't upload anything to it.
#
# Defaults to false.
# Default: false.
# Since: v1.11.
skip_upload: true
# You can add extra pre-existing files to the release.

View File

@ -1,5 +1,7 @@
# Cataloging artifacts
Since: v1.2.
A Software Bill of Materials (SBOM) is a description of the components that make up a software artifact.
Goreleaser can create one or more SBOMs for any artifacts generated by Goreleaser.

View File

@ -101,7 +101,8 @@ signs:
# By default, the stdout and stderr of the signing cmd are discarded unless GoReleaser is running with `--debug` set.
# You can set this to true if you want them to be displayed regardless.
#
# Defaults to false
# Default: false.
# Since: v1.2.
output: true
```

View File

@ -157,46 +157,64 @@ snapcrafts:
args: --foo
# The kind of wrapper to generate for the given command.
# Defaults to empty.
#
# Default: empty.
# Since: v1.6.
adapter: none
# List of applications that are ordered to be started after the current
# one.
# Defaults to empty.
#
# Default: empty.
# Since: v1.6.
after: ["postdrum"]
# Aliases for the app command.
# Defaults to empty.
# https://snapcraft.io/docs/commands-and-aliases#heading--aliases
#
# Default: empty.
# Since: v1.6.
aliases: ["droll"]
# Defines the name of the .desktop file used to start an application
# with the desktop session.
# Defaults to empty.
# https://snapcraft.io/docs/snap-format#heading--autostart
#
# Default: empty.
# Since: v1.6.
autostart: drumroll.desktop
# List of applications that are ordered to be started before the current
# one.
# Defaults to empty.
#
# Default: empty.
# Since: v1.6.
before: ["predrum"]
# D-Bus name this service is reachable as. Mandatory if daemon=dbus.
# Defaults to empty.
#
# Default: empty.
# Since: v1.6.
bus_name: drumbus
# A list of commands to be executed in order before the command of this
# app.
# Defaults to empty.
#
# Default: empty.
# Since: v1.6.
command_chain: ["foo", "bar", "baz"]
# An identifier to a desktop-id within an external appstream file.
# https://snapcraft.io/docs/using-external-metadata
#
# Default: empty.
# Since: v1.6.
common_id: "com.example.drumroll"
# Bash completion snippet. More information about completion here:
# Defaults to empty.
# https://docs.snapcraft.io/tab-completion-for-snaps.
#
# Default: empty.
completer: drumroll-completion.bash
# You can override the command name.
@ -209,29 +227,40 @@ snapcrafts:
daemon: simple
# Location of the .desktop file.
# Defaults to empty.
#
# Default: empty.
# Since: v1.6.
desktop: usr/share/applications/drumroll.desktop
# A set of key-value pairs specifying environment variables.
# Defaults to empty.
#
# Default: empty.
# Since: v1.6.
environment:
foo: bar
baz: quo
# A list of Snapcraft extensions this app depends on.
# Defaults to empty.
# https://snapcraft.io/docs/snapcraft-extensions
#
# Default: empty.
# Since: v1.6.
extensions: ["gnome-3-38"]
# Defines whether a freshly installed daemon is started automatically,
# or whether startup control is deferred to the snap.
# Defaults to empty. Requires `daemon` to be set.
# Requires `daemon` to be set.
#
# Default: empty.
# Since: v1.6.
install_mode: "disable"
# A set of key-value attributes passed through to snap.yaml without
# snapcraft validation.
# Defaults to empty.
# https://snapcraft.io/docs/using-in-development-features
#
# Default: empty.
# Since: v1.6.
passthrough:
foo: bar
@ -243,28 +272,41 @@ snapcrafts:
plugs: ["home", "network", "personal-files"]
# Sets a command to run from inside the snap after a service stops.
# Defaults to empty.
#
# Default: empty.
# Since: v1.6.
post_stop_command: foo
# Controls whether the daemon should be restarted during a snap refresh.
# Defaults to empty.
#
# Default: empty.
# Since: v1.6.
refresh_mode: endure
# Command to use to ask the service to reload its configuration.
# Defaults to empty. Requires `daemon` to be set.
# Requires `daemon` to be set.
#
# Default: empty.
# Since: v1.6.
reload_command: foo
# Restart condition of the snap.
# Defaults to empty.
# https://snapcraft.io/docs/snapcraft-yaml-reference
#
# Default: empty.
restart_condition: "always"
# List of slots for interfaces to connect to.
# Defaults to empty.
#
# Default: empty.
# Since: v1.6.
slots: ["foo", "bar", "baz"]
# Maps a daemon’s sockets to services and activates them.
# Defaults to empty. Requires `plugs` to contain `network-bind`.
# Requires `plugs` to contain `network-bind`.
#
# Default: empty.
# Since: v1.6.
sockets:
sock:
listen-stream: $SNAP_COMMON/socket
@ -272,28 +314,44 @@ snapcrafts:
socket-mode: 416
# Time to wait for daemon to start.
# Defaults to empty.
#
# Default: empty.
# Since: v1.6.
start_timeout: 42ms
# Command to use to stop the service.
# Defaults to empty. Requires `daemon` to be set.
# Requires `daemon` to be set.
#
# Default: empty.
# Since: v1.6.
stop_command: foo
# Controls how the daemon should be stopped.
# Defaults to empty. Requires `daemon` to be set.
# Requires `daemon` to be set.
#
# Default: empty.
# Since: v1.6.
stop_mode: sigterm
# Time to wait for daemon to stop.
# Defaults to empty.
#
# Default: empty.
# Since: v1.6.
stop_timeout: 42ms
# Schedules when, or how often, to run a service or command.
# Defaults to empty. Requires `daemon` to be set.
# Requires `daemon` to be set.
# https://snapcraft.io/docs/services-and-daemons
#
# Default: empty.
# Since: v1.6.
timer: "00:00-24:00/24"
# Declares the service watchdog timeout.
# Defaults to empty. Requires `plugs` to contain `daemon-notify`.
# Requires `plugs` to contain `daemon-notify`.
#
# Default: empty.
# Since: v1.6.
watchdog_timeout: 42ms
# Allows plugs to be configured. Plugs like system-files and personal-files

View File

@ -25,7 +25,9 @@ source:
prefix_template: '{{ .ProjectName }}-{{ .Version }}/'
# Additional files/template/globs you want to add to the source archive.
# Defaults to empty.
#
# Default: empty.
# Since: v1.11.
files:
- LICENSE.txt
- README_{{.Os}}.md

View File

@ -43,11 +43,11 @@ On fields that support templating, these fields are always available:
| `.ReleaseURL` | the current release download url[^4] |
| `.Summary` | the git summary, e.g. `v1.0.0-10-g34f56g3`[^5] |
| `.PrefixedSummary` | the git summary prefixed with the monorepo config tag prefix (if any) |
| `.TagSubject` | the annotated tag message subject, or the message subject of the commit it points out[^6] |
| `.TagContents` | the annotated tag message, or the message of the commit it points out[^7] |
| `.TagBody` | the annotated tag message's body, or the message's body of the commit it points out[^7] |
| `.Runtime.Goos` | equivalent to `runtime.GOOS` |
| `.Runtime.Goarch` | equivalent to `runtime.GOARCH` |
| `.TagSubject` | the annotated tag message subject, or the message subject of the commit it points out[^6]. Since v1.2. |
| `.TagContents` | the annotated tag message, or the message of the commit it points out[^7]. Since v1.2. |
| `.TagBody` | the annotated tag message's body, or the message's body of the commit it points out[^7]. Since v1.2. |
| `.Runtime.Goos` | equivalent to `runtime.GOOS`. Since v1.5. |
| `.Runtime.Goarch` | equivalent to `runtime.GOARCH`. Since v1.5. |
[^1]: The `v` prefix is stripped, and it might be changed in `snapshot` and `nightly` builds.
[^2]: Assuming `Tag` is a valid a SemVer, otherwise empty/zeroed.
@ -62,17 +62,17 @@ On fields that support templating, these fields are always available:
On fields that are related to a single artifact (e.g., the binary name), you
may have some extra fields:
| Key | Description |
|-----------------|---------------------------------------|
| `.Os` | `GOOS`[^8] |
| `.Arch` | `GOARCH`[^8] |
| `.Arm` | `GOARM`[^8] |
| `.Mips` | `GOMIPS`[^8] |
| `.Amd64` | `GOAMD64`[^8] |
| `.Binary` | binary name |
| `.ArtifactName` | archive name |
| `.ArtifactPath` | absolute path to artifact |
| `.ArtifactExt` | binary extension (e.g. `.exe`) |
| Key | Description |
|-----------------|----------------------------------------------|
| `.Os` | `GOOS`[^8] |
| `.Arch` | `GOARCH`[^8] |
| `.Arm` | `GOARM`[^8] |
| `.Mips` | `GOMIPS`[^8] |
| `.Amd64` | `GOAMD64`[^8] |
| `.Binary` | binary name |
| `.ArtifactName` | archive name |
| `.ArtifactPath` | absolute path to artifact |
| `.ArtifactExt` | binary extension (e.g. `.exe`). Since v1.11. |
[^8]: Might have been replaced by `archives.replacements`.
@ -80,11 +80,11 @@ may have some extra fields:
On the nFPM name template field, you can use those extra fields as well:
| Key | Description |
|----------------|------------------------------------------------------------|
| `.Release` | release from the nfpm config |
| `.Epoch` | epoch from the nfpm config |
| `.PackageName` | package the name. Same as `ProjectName` if not overridden. |
| Key | Description |
|----------------|-----------------------------------------------------------------|
| `.Release` | release from the nfpm config |
| `.Epoch` | epoch from the nfpm config |
| `.PackageName` | package the name. Same as `ProjectName` if not overridden. |
| `.ConventionalFileName` | conventional package file name as provided by nFPM[^9] |
[^9]: Please beware: some OSs might have the same names for different ARM versions, for example, for Debian both ARMv6 and ARMv7 are called `armhf`. Make sure that's not your case otherwise you might end up with colliding names. It also does not handle multiple GOAMD64 versions.
@ -96,7 +96,7 @@ On all fields, you have these available functions:
| Usage | Description |
|--------------------------------|--------------------------------------------------------------------------------------------------------------------------------|
| `replace "v1.2" "v" ""` | replaces all matches. See [ReplaceAll](https://golang.org/pkg/strings/#ReplaceAll) |
| `split "1.2" "."` | split string at separator. See [Split](https://golang.org/pkg/strings/#Split) |
| `split "1.2" "."` | split string at separator. See [Split](https://golang.org/pkg/strings/#Split). Since v1.11. |
| `time "01/02/2006"` | current UTC time in the specified format (this is not deterministic, a new time for every call) |
| `tolower "V1.2"` | makes input string lowercase. See [ToLower](https://golang.org/pkg/strings/#ToLower) |
| `toupper "v1.2"` | makes input string uppercase. See [ToUpper](https://golang.org/pkg/strings/#ToUpper) |
@ -105,8 +105,8 @@ On all fields, you have these available functions:
| `trimsuffix "1.2v" "v"` | removes provided trailing suffix string, if present. See [TrimSuffix](https://pkg.go.dev/strings#TrimSuffix) |
| `dir .Path` | returns all but the last element of path, typically the path's directory. See [Dir](https://golang.org/pkg/path/filepath/#Dir) |
| `abs .ArtifactPath` | returns an absolute representation of path. See [Abs](https://golang.org/pkg/path/filepath/#Abs) |
| `filter "text" "regex"` | keeps only the lines matching the given regex, analogous to `grep -E` |
| `reverseFilter "text" "regex"` | keeps only the lines **not** matching the given regex, analogous to `grep -vE` |
| `filter "text" "regex"` | keeps only the lines matching the given regex, analogous to `grep -E`. Since v1.6. |
| `reverseFilter "text" "regex"` | keeps only the lines **not** matching the given regex, analogous to `grep -vE`. Since v1.6. |
With all those fields, you may be able to compose the name of your artifacts
pretty much the way you want:
@ -150,3 +150,4 @@ variables:
```
And then you can use those fields as `{{ .Var.description }}`, for example.

View File

@ -17,6 +17,7 @@ universal_binaries:
# IDs to use to filter the built binaries.
#
# Defaults to the `id` field.
# Since: v1.3.
ids:
- build1
- build2

View File

@ -163,7 +163,9 @@ uploads:
# This might be useful if you have multiple packages with different
# extensions with the same ID, and need to upload each extension to
# a different place (e.g. nFPM packages).
# Default is empty.
#
# Default: empty.
# Since: v1.7.
exts:
- deb
- rpm
@ -188,6 +190,7 @@ uploads:
username: deployuser
# Client certificate and key (when provided, added as client cert to TLS connections)
# Since: v1.11.
client_x509_cert: /path/to/client.cert.pem
client_x509_key: /path/to/client.key.pem

View File

@ -26,7 +26,9 @@ gomod:
- GOPRIVATE=example.com/blah
# Sets the `-mod` flag value.
# Defaults to empty.
#
# Default: empty.
# Since: v1.7.
mod: mod
# Which Go binary to use.

View File

@ -36,9 +36,12 @@ gitlab_urls:
# set to true if you want to upload to the Package Registry rather than attachments
# Only works with GitLab 13.5+
# Since: v1.3.
use_package_registry: false
# Set this if you set GITLAB_TOKEN to the value of CI_JOB_TOKEN:
# Set this if you set GITLAB_TOKEN to the value of CI_JOB_TOKEN.
# Default: false
# Since: v1.11.
use_job_token: true
```