mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-03-11 14:39:28 +02:00
docs: update from pro
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
This commit is contained in:
parent
d58fa71b0d
commit
eb9699142f
@ -28,6 +28,7 @@ Check out our website for more information, examples and documentation: https://
|
||||
* [goreleaser changelog](/cmd/goreleaser_changelog/) - Preview your changelog
|
||||
* [goreleaser check](/cmd/goreleaser_check/) - Checks if configuration is valid
|
||||
* [goreleaser completion](/cmd/goreleaser_completion/) - Generate the autocompletion script for the specified shell
|
||||
* [goreleaser continue](/cmd/goreleaser_continue/) - Continues a previously prepared release
|
||||
* [goreleaser init](/cmd/goreleaser_init/) - Generates a .goreleaser.yaml file
|
||||
* [goreleaser jsonschema](/cmd/goreleaser_jsonschema/) - outputs goreleaser's JSON schema
|
||||
* [goreleaser publish](/cmd/goreleaser_publish/) - Publishes a previously prepared release
|
||||
|
@ -4,11 +4,14 @@ Announces a previously prepared release
|
||||
|
||||
## Synopsis
|
||||
|
||||
If you have a previously prepared release with `goreleaser release --prepare` and published it with `goreleaser publish`, you can use this command to announce it.
|
||||
If you have a previously prepared release with `goreleaser release --prepare` or `goreleaser release --split` and published it with `goreleaser publish`, you can use this command to announce it.
|
||||
|
||||
The idea is to prepare a release without publishing anything, assert the artifacts are correct (either automatically or not), publish it, and then, finally, announce it to your users.
|
||||
The idea is to prepare a release without publishing anything, assert the
|
||||
artifacts are correct (either automatically or not), publish it, and then,
|
||||
finally, announce it to your users.
|
||||
|
||||
Environment variables will be re-evaluated here, so make sure they are available to the announce command as well.
|
||||
Environment variables will be re-evaluated here, so make sure they are
|
||||
available to the announce command as well.
|
||||
|
||||
!!! success "GoReleaser Pro"
|
||||
This subcommand is [GoReleaser Pro feature](https://goreleaser.com/pro/).
|
||||
@ -24,6 +27,7 @@ goreleaser announce [flags]
|
||||
-d, --dist string dist folder to continue (default "./dist")
|
||||
-h, --help help for announce
|
||||
-k, --key string GoReleaser Pro license key [$GORELEASER_KEY]
|
||||
--merge Merges multiple parts of a --split release
|
||||
-p, --parallelism int Amount tasks to run concurrently (default: number of CPUs)
|
||||
--skip-after Skips global after hooks
|
||||
--timeout duration Timeout to the entire announce process (default 30m0s)
|
||||
|
41
www/docs/cmd/goreleaser_continue.md
Normal file
41
www/docs/cmd/goreleaser_continue.md
Normal file
@ -0,0 +1,41 @@
|
||||
# goreleaser continue
|
||||
|
||||
Continues a previously prepared release
|
||||
|
||||
## Synopsis
|
||||
|
||||
If you have a previously prepared release (run with `goreleaser release --prepare` or `goreleaser release --split`), you can use this command to continue it.
|
||||
|
||||
Environment variables will be re-evaluated here, so make sure they are
|
||||
available to the continue command as well.
|
||||
|
||||
!!! success "GoReleaser Pro"
|
||||
This subcommand is [GoReleaser Pro feature](https://goreleaser.com/pro/).
|
||||
|
||||
|
||||
```
|
||||
goreleaser continue [flags]
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
```
|
||||
-d, --dist string dist folder to continue (default "./dist")
|
||||
-h, --help help for continue
|
||||
-k, --key string GoReleaser Pro license key [$GORELEASER_KEY]
|
||||
--merge Merges multiple parts of a --split release
|
||||
-p, --parallelism int Amount tasks to run concurrently (default: number of CPUs)
|
||||
--skip-after Skips global after hooks
|
||||
--timeout duration Timeout to the entire continue process (default 30m0s)
|
||||
```
|
||||
|
||||
## Options inherited from parent commands
|
||||
|
||||
```
|
||||
--debug Enable debug mode
|
||||
```
|
||||
|
||||
## See also
|
||||
|
||||
* [goreleaser](/cmd/goreleaser/) - Deliver Go binaries as fast and easily as possible
|
||||
|
@ -4,11 +4,14 @@ Publishes a previously prepared release
|
||||
|
||||
## Synopsis
|
||||
|
||||
If you have a previously prepared release (run with `goreleaser release --prepare`), you can use this command to publish it.
|
||||
If you have a previously prepared release (run with `goreleaser release --prepare` or `goreleaser release --split`), you can use this command to publish it.
|
||||
|
||||
The idea is to prepare a release without publishing anything, assert the artifacts are correct (either automatically or not), and then, finally, publish the release and its artifacts.
|
||||
The idea is to prepare a release without publishing anything, assert the
|
||||
artifacts are correct (either automatically or not), and then, finally, publish
|
||||
the release and its artifacts.
|
||||
|
||||
Environment variables will be re-evaluated here, so make sure they are available to the publish command as well.
|
||||
Environment variables will be re-evaluated here, so make sure they are
|
||||
available to the publish command as well.
|
||||
|
||||
!!! success "GoReleaser Pro"
|
||||
This subcommand is [GoReleaser Pro feature](https://goreleaser.com/pro/).
|
||||
@ -24,6 +27,7 @@ goreleaser publish [flags]
|
||||
-d, --dist string dist folder to continue (default "./dist")
|
||||
-h, --help help for publish
|
||||
-k, --key string GoReleaser Pro license key [$GORELEASER_KEY]
|
||||
--merge Merges multiple parts of a --split release
|
||||
-p, --parallelism int Amount tasks to run concurrently (default: number of CPUs)
|
||||
--skip-after Skips global after hooks
|
||||
--timeout duration Timeout to the entire publish process (default 30m0s)
|
||||
|
@ -33,6 +33,7 @@ goreleaser release [flags]
|
||||
--skip-sign Skips signing artifacts
|
||||
--skip-validate Skips git checks
|
||||
--snapshot Generate an unversioned snapshot release, skipping all validations and without publishing any artifacts (implies --skip-publish, --skip-announce and --skip-validate, overrides --nightly)
|
||||
--split Split the build so it can be merged and published later (implies --prepare)
|
||||
--timeout duration Timeout to the entire release process (default 30m0s)
|
||||
```
|
||||
|
||||
|
76
www/docs/customization/partial.md
Normal file
76
www/docs/customization/partial.md
Normal file
@ -0,0 +1,76 @@
|
||||
# Splitting and Merging builds
|
||||
|
||||
!!! success "GoReleaser Pro"
|
||||
This subcommand is [GoReleaser Pro feature](https://goreleaser.com/pro/).
|
||||
|
||||
> Since GoReleaser v1.12.0.
|
||||
|
||||
You can now split and merge builds.
|
||||
This can help in several areas:
|
||||
|
||||
1. CGO, as you can build each platform in their target OS and merge later;
|
||||
1. Native packaging and signing for Windows and macOS (more features for this
|
||||
will be added soon);
|
||||
1. Speed up slow builds, by splitting them into multiple workers;
|
||||
|
||||
## Usage
|
||||
|
||||
You don't really need to set anything up. To get started, run:
|
||||
|
||||
```bash
|
||||
goreleaser release --rm-dist --split
|
||||
```
|
||||
|
||||
Note that this step will push your Docker images as well.
|
||||
Docker manifests are not created yet, though.
|
||||
|
||||
This will build only the artifacts for your current `GOOS`, and you should be
|
||||
able to find them in `dist/$GOOS`.
|
||||
|
||||
You can run the other `GOOS` you want as well by either running in their OS, or
|
||||
by giving a `GOOS` to `goreleaser`.
|
||||
|
||||
You should then have multiple `GOOS` folder inside your `dist` folder.
|
||||
|
||||
Now, to continue, run:
|
||||
|
||||
```bash
|
||||
goreleaser continue
|
||||
```
|
||||
|
||||
This last step will run some extra things that were not run during the previous
|
||||
step:
|
||||
|
||||
- merge previous contexts and artifacts lists
|
||||
- pull previously built images
|
||||
- create the source archive (if enabled)
|
||||
- checksum all artifacts
|
||||
- sign artifacts (according to configuration)
|
||||
- SBOM artifacts (according to configuration)
|
||||
- run all the publishers
|
||||
- run all the announcers
|
||||
|
||||
You can also run the publishing and announce steps separately:
|
||||
|
||||
```bash
|
||||
goreleaser publish --merge
|
||||
goreleaser announce --merge
|
||||
```
|
||||
|
||||
## Customization
|
||||
|
||||
You can choose by what you want your pipeline to be split by:
|
||||
|
||||
```yaml
|
||||
# goreleaser.yaml
|
||||
partial:
|
||||
# By what you want to build the partial things.
|
||||
#
|
||||
# Valid options are `target` and `goos`:
|
||||
# - `target`: `GOOS` + `GOARCH`.
|
||||
# - `goos`: `GOOS` only
|
||||
#
|
||||
# Default: `goos`.
|
||||
by: target
|
||||
```
|
||||
|
@ -1,43 +1,73 @@
|
||||
# GoReleaser Pro
|
||||
|
||||
GoReleaser Pro is a paid, closed-source GoReleaser distribution with some additional features:
|
||||
GoReleaser Pro is a paid, closed-source GoReleaser distribution with some
|
||||
additional features:
|
||||
|
||||
- [x] [Split and merge builds](/customization/partial) to speed up your release
|
||||
by splitting work, use CGO, or run platform-specific code;
|
||||
- [x] Have custom [before and after hooks for achives](/customization/archive/);
|
||||
- [x] Prepare a release with [`goreleaser release --prepare`](/cmd/goreleaser_release/), publish and announce it later with [`goreleaser publish`](/cmd/goreleaser_publish/) and [`goreleaser announce`](/cmd/goreleaser_announce/);
|
||||
- [x] Preview and test your next release's changelog with [`goreleaser changelog`](/cmd/goreleaser_changelog/);
|
||||
- [x] Prepare a release with [`goreleaser release
|
||||
--prepare`](/cmd/goreleaser_release/), publish and announce it later with
|
||||
[`goreleaser publish`](/cmd/goreleaser_publish/) and [`goreleaser
|
||||
announce`](/cmd/goreleaser_announce/);
|
||||
- [x] Preview and test your next release's change log with
|
||||
[`goreleaser changelog`](/cmd/goreleaser_changelog/);
|
||||
- [x] Continuously release [nightly builds](/customization/nightlies/);
|
||||
- [x] Import pre-built binaries with the [`prebuilt` builder](/customization/build/#import-pre-built-binaries);
|
||||
- [x] Rootless build [Docker images](/customization/docker/#podman) and [manifests](/customization/docker_manifest/#podman) with [Podman](https://podman.io);
|
||||
- [x] Easily create `apt` and `yum` repositories with the [fury.io integration](/customization/fury/);
|
||||
- [x] Reuse configuration files with the [include keyword](/customization/includes/);
|
||||
- [x] Run commands after the release with [global after hooks](/customization/hooks/);
|
||||
- [x] Import pre-built binaries with the
|
||||
[`prebuilt` builder](/customization/build/#import-pre-built-binaries);
|
||||
- [x] Rootless build [Docker images](/customization/docker/#podman) and
|
||||
[manifests](/customization/docker_manifest/#podman) with
|
||||
[Podman](https://podman.io);
|
||||
- [x] Easily create `apt` and `yum` repositories with the
|
||||
[fury.io integration](/customization/fury/);
|
||||
- [x] Reuse configuration files with the
|
||||
[include keyword](/customization/includes/);
|
||||
- [x] Run commands after the release with
|
||||
[global after hooks](/customization/hooks/);
|
||||
- [x] Use GoReleaser within your [monorepo](/customization/monorepo/);
|
||||
- [x] Create [custom template variables](/customization/templates/#custom-variables) (goes well with [includes](/customization/includes/)).
|
||||
- [x] Create
|
||||
[custom template variables](/customization/templates/#custom-variables)
|
||||
(goes well with [includes](/customization/includes/)).
|
||||
|
||||
<script src="https://gumroad.com/js/gumroad.js"></script>
|
||||
<a class="gumroad-button" href="https://gumroad.com/l/CadfZ" target="_blank">Get GoReleaser Pro</a>
|
||||
|
||||
## Roadmap
|
||||
## Road map
|
||||
|
||||
The roadmap is not public (yet), but we do have a couple of ideas, and your input is always welcome!
|
||||
Once you buy it, feel free to [email me](mailto:carlos@becker.software?subject=GoReleaser%20Feature%20Suggestion) with your suggestions.
|
||||
We don't have a properly organized public road map (*yet*), but these are some
|
||||
of the things we plan to work on, in one form or another:
|
||||
|
||||
- [ ] `--dry-run` to test the release locally, possibly skipping the actual
|
||||
build of the binaries to focus on faster iteration of the other parts;
|
||||
- [ ] `--single-target` & friends for `goreleaser release` as well;
|
||||
- [ ] first-class macOS signing;
|
||||
- [ ] create Windows installers;
|
||||
|
||||
That said, your input is always welcome!
|
||||
Once you buy it, feel free to [email me](mailto:carlos@becker.software?subject=GoReleaser%20Feature%20Suggestion)
|
||||
with your suggestions and ideas.
|
||||
|
||||
## Pricing & Sponsors
|
||||
|
||||
- The current pricing is low and is likely to increase as we keep adding more pro-only features;
|
||||
- If you sponsor either the project or any of its developers, you [can ask for a discount](mailto:carlos@becker.software?subject=GoReleaser%20Coupon%20Request)!
|
||||
- The current pricing is low and is likely to increase as we keep adding more
|
||||
pro-only features;
|
||||
- If you sponsor either the project or any of its developers, you [can ask for a
|
||||
discount](mailto:carlos@becker.software?subject=GoReleaser%20Coupon%20Request)!
|
||||
|
||||
## Enterprise support
|
||||
|
||||
I don't have a plan for that yet, but please [email me](mailto:carlos@becker.software?subject=GoReleaser%20Enterprise%20Support) if you are interested.
|
||||
I don't have a plan for that yet, but please [email
|
||||
me](mailto:carlos@becker.software?subject=GoReleaser%20Enterprise%20Support) if
|
||||
you are interested.
|
||||
|
||||
## Using GoReleaser Pro
|
||||
|
||||
Once you [buy it](https://gum.co/goreleaser), you'll get a license key.
|
||||
You can then pass it to the [`release` command](/cmd/goreleaser_release/) either via the `--key` flag or the `GORELEASER_KEY` environment variable.
|
||||
Once you [buy it](https://gum.co/goreleaser), you'll get a license key. You can
|
||||
then pass it to the [`release` command](/cmd/goreleaser_release/) either via the
|
||||
`--key` flag or the `GORELEASER_KEY` environment variable.
|
||||
|
||||
If you use the GitHub action, you will want to set the `distribution` option to `goreleaser-pro`.
|
||||
Check the [documentation](/ci/actions/) for more details.
|
||||
If you use the GitHub action, you will want to set the `distribution` option to
|
||||
`goreleaser-pro`. Check the [documentation](/ci/actions/) for more details.
|
||||
|
||||
## EULA
|
||||
|
||||
|
41
www/docs/static/schema-pro.json
generated
vendored
41
www/docs/static/schema-pro.json
generated
vendored
@ -1687,6 +1687,20 @@
|
||||
"additionalProperties": false,
|
||||
"type": "object"
|
||||
},
|
||||
"Partial": {
|
||||
"properties": {
|
||||
"by": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"goos",
|
||||
"target"
|
||||
],
|
||||
"default": "goos"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"type": "object"
|
||||
},
|
||||
"PreBuiltOptions": {
|
||||
"properties": {
|
||||
"path": {
|
||||
@ -1764,9 +1778,6 @@
|
||||
"snapshot": {
|
||||
"$ref": "#/$defs/Snapshot"
|
||||
},
|
||||
"nightly": {
|
||||
"$ref": "#/$defs/Nightly"
|
||||
},
|
||||
"checksum": {
|
||||
"$ref": "#/$defs/Checksum"
|
||||
},
|
||||
@ -1800,12 +1811,6 @@
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"furies": {
|
||||
"items": {
|
||||
"$ref": "#/$defs/Fury"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"publishers": {
|
||||
"items": {
|
||||
"$ref": "#/$defs/Publisher"
|
||||
@ -1845,9 +1850,6 @@
|
||||
"gomod": {
|
||||
"$ref": "#/$defs/GoMod"
|
||||
},
|
||||
"monorepo": {
|
||||
"$ref": "#/$defs/Monorepo"
|
||||
},
|
||||
"announce": {
|
||||
"$ref": "#/$defs/Announce"
|
||||
},
|
||||
@ -1883,6 +1885,21 @@
|
||||
},
|
||||
"variables": {
|
||||
"type": "object"
|
||||
},
|
||||
"monorepo": {
|
||||
"$ref": "#/$defs/Monorepo"
|
||||
},
|
||||
"partial": {
|
||||
"$ref": "#/$defs/Partial"
|
||||
},
|
||||
"nightly": {
|
||||
"$ref": "#/$defs/Nightly"
|
||||
},
|
||||
"furies": {
|
||||
"items": {
|
||||
"$ref": "#/$defs/Fury"
|
||||
},
|
||||
"type": "array"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
|
@ -84,6 +84,7 @@ nav:
|
||||
- customization/verifiable_builds.md
|
||||
- customization/monorepo.md
|
||||
- customization/universalbinaries.md
|
||||
- customization/partial.md
|
||||
- Packaging and Archiving:
|
||||
- customization/archive.md
|
||||
- customization/nfpm.md
|
||||
|
Loading…
x
Reference in New Issue
Block a user