diff --git a/www/docs/customization/announce/webhook.md b/www/docs/customization/announce/webhook.md index 06069716762..8af7123747b 100644 --- a/www/docs/customization/announce/webhook.md +++ b/www/docs/customization/announce/webhook.md @@ -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. diff --git a/www/docs/customization/archive.md b/www/docs/customization/archive.md index b9ec26990c2..6b6d4ca41b5 100644 --- a/www/docs/customization/archive.md +++ b/www/docs/customization/archive.md @@ -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. diff --git a/www/docs/customization/artifactory.md b/www/docs/customization/artifactory.md index 20d492c239c..598700920f0 100644 --- a/www/docs/customization/artifactory.md +++ b/www/docs/customization/artifactory.md @@ -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 diff --git a/www/docs/customization/aur.md b/www/docs/customization/aur.md index 01adda0b6aa..39ba884929e 100644 --- a/www/docs/customization/aur.md +++ b/www/docs/customization/aur.md @@ -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_. diff --git a/www/docs/customization/build.md b/www/docs/customization/build.md index 1825b30c260..8dc1cf71e24 100644 --- a/www/docs/customization/build.md +++ b/www/docs/customization/build.md @@ -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 diff --git a/www/docs/customization/changelog.md b/www/docs/customization/changelog.md index 343fd4a5236..7895813bdb0 100644 --- a/www/docs/customization/changelog.md +++ b/www/docs/customization/changelog.md @@ -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. diff --git a/www/docs/customization/docker_sign.md b/www/docs/customization/docker_sign.md index 07927cac202..bcfcbcd37dc 100644 --- a/www/docs/customization/docker_sign.md +++ b/www/docs/customization/docker_sign.md @@ -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 ``` diff --git a/www/docs/customization/homebrew.md b/www/docs/customization/homebrew.md index e19e7a63f7c..74b18c1e227 100644 --- a/www/docs/customization/homebrew.md +++ b/www/docs/customization/homebrew.md @@ -133,6 +133,8 @@ brews: ... # Service block. + # + # Since: v1.7. service: | run: foo/bar ... diff --git a/www/docs/customization/hooks.md b/www/docs/customization/hooks.md index af2a39ec415..26871dedc4a 100644 --- a/www/docs/customization/hooks.md +++ b/www/docs/customization/hooks.md @@ -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: diff --git a/www/docs/customization/nfpm.md b/www/docs/customization/nfpm.md index 1ec3830fa8b..10111f8d94f 100644 --- a/www/docs/customization/nfpm.md +++ b/www/docs/customization/nfpm.md @@ -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. diff --git a/www/docs/customization/release.md b/www/docs/customization/release.md index 5a5b815a9fb..3ac62abe103 100644 --- a/www/docs/customization/release.md +++ b/www/docs/customization/release.md @@ -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. diff --git a/www/docs/customization/sbom.md b/www/docs/customization/sbom.md index 95742cb1360..bf64ffd85e6 100644 --- a/www/docs/customization/sbom.md +++ b/www/docs/customization/sbom.md @@ -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. diff --git a/www/docs/customization/sign.md b/www/docs/customization/sign.md index 82124a73582..c91fc1719ee 100644 --- a/www/docs/customization/sign.md +++ b/www/docs/customization/sign.md @@ -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 ``` diff --git a/www/docs/customization/snapcraft.md b/www/docs/customization/snapcraft.md index a0f573cd46c..9bbe0ae10b0 100644 --- a/www/docs/customization/snapcraft.md +++ b/www/docs/customization/snapcraft.md @@ -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 diff --git a/www/docs/customization/source.md b/www/docs/customization/source.md index bfec2703804..8f84eee38e5 100644 --- a/www/docs/customization/source.md +++ b/www/docs/customization/source.md @@ -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 diff --git a/www/docs/customization/templates.md b/www/docs/customization/templates.md index e7f9898c9ed..feec830c6b2 100644 --- a/www/docs/customization/templates.md +++ b/www/docs/customization/templates.md @@ -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. + diff --git a/www/docs/customization/universalbinaries.md b/www/docs/customization/universalbinaries.md index bb64b445623..31e223ad5a6 100644 --- a/www/docs/customization/universalbinaries.md +++ b/www/docs/customization/universalbinaries.md @@ -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 diff --git a/www/docs/customization/upload.md b/www/docs/customization/upload.md index d8b80d53d73..f02e9538f75 100644 --- a/www/docs/customization/upload.md +++ b/www/docs/customization/upload.md @@ -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 diff --git a/www/docs/customization/verifiable_builds.md b/www/docs/customization/verifiable_builds.md index 09f7559f9a9..f1cd51b6bf8 100644 --- a/www/docs/customization/verifiable_builds.md +++ b/www/docs/customization/verifiable_builds.md @@ -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. diff --git a/www/docs/scm/gitlab.md b/www/docs/scm/gitlab.md index 792c15de628..b94aea25fa2 100644 --- a/www/docs/scm/gitlab.md +++ b/www/docs/scm/gitlab.md @@ -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 ```