Documentation
¶
Overview ¶
Package release publishes release artifacts that goreleaser does not build.
Only the OpenTofu provider lives here. GoReleaser builds every other binary the repository releases and could build this one too, but what has to be published is not a release asset: it is an OCI image index assembled to the shape an OpenTofu provider mirror serves, and goreleaser has nothing to say about composing one. Building the zips here as well keeps the whole artifact in one place, and lets them carry a fixed entry timestamp so the same commit produces the same bytes.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func TofuProvider ¶
TofuProvider builds the OpenTofu provider for every published platform and assembles it into an OCI image index an OpenTofu provider mirror can serve, optionally pushing it.
The shape is defined by the provider mirror protocol: an index whose artifactType is application/vnd.opentofu.provider, one manifest per platform whose artifactType is application/vnd.opentofu.provider-target and which carries a platform property, and a single archive/zip layer holding the provider package. It needs no GPG signature and no registry listing, which is why this is the distribution path rather than a registry submission. See docs/agent/choice-tofu-provider-layout.md and https://opentofu.org/docs/cli/oci_registries/provider-mirror/.
Types ¶
type Options ¶
type Options struct {
// Version is the release version without the leading v: 0.1.0, or 0.1.0+build.1.
Version string
// Repository is the OCI repository to publish to. Empty means providerRepository.
Repository string
// Push copies the assembled index to Repository. False stops after the layout is built,
// which is how the artifact shape is checked without a registry.
Push bool
}
Options are the inputs to TofuProvider.