1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-01-08 03:31:59 +02:00
goreleaser/www/docs/customization/snapshots.md
CrazyMax d8a0f253d1
feat: allow automatic snapshot on dirty state (#1958)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2020-12-22 10:41:08 -03:00

1.2 KiB

title
Snapshots

Sometimes we want to generate a full build of our project, but neither want to validate anything nor upload it to anywhere.

GoReleaser supports this with the --snapshot flag and also with the snapshot customization section:

# .goreleaser.yml
snapshot:
  # Allows you to change the name of the generated snapshot
  #
  # Note that some pipes require this to be semantic version compliant (nfpm,
  # for example).
  #
  # Default is `{{ .Tag }}-SNAPSHOT-{{.ShortCommit}}`.
  name_template: 1.2.3-SNAPSHOT-{{.Commit}}

How it works

When you run GoReleaser with --snapshot, it will set the Version template variable to the evaluation of snapshot.name_template.

This means that if you use {{ .Version }} on your name templates, you'll get the snapshot version.

!!! tip Learn more about the name template engine.

Note that the idea behind GoReleaser's snapshots if mostly for local builds or to validate your build on the CI pipeline. Artifacts shouldn't be uploaded anywhere, and will only be generated to the dist folder.

You can also use the --snapshot-auto flag to automatically switch to snapshot if Git is currently in a dirty state.