release

package
v0.3.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2026 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ProductName                    = "bering"
	ContractsManifestSchemaName    = "io.mb3r.bering.contracts-manifest"
	ContractsManifestSchemaVersion = "1.0.0"
	ContractsManifestSchemaURI     = "urn:io.mb3r.bering:contracts-manifest:1.0.0"
	ReleaseManifestSchemaName      = "io.mb3r.bering.release-manifest"
	ReleaseManifestSchemaVersion   = "1.0.0"
	ReleaseManifestSchemaURI       = "urn:io.mb3r.bering:release-manifest:1.0.0"
	ReleaseChecksumsName           = "release-checksums.txt"
	ReleaseManifestName            = "release-manifest.json"
	ReleaseNotesName               = "release-notes.md"
	ContractsManifestName          = "contracts-manifest.json"
)

Variables

This section is empty.

Functions

func DigestFile

func DigestFile(path string) (string, error)

func ImageTags

func ImageTags(appVersion, gitCommit string) ([]string, error)

func MajorMinorTag

func MajorMinorTag(version string) (string, error)

func TagForVersion

func TagForVersion(version string) string

func ValidateRelease

func ValidateRelease(opts ValidateOptions) error

func ValidateSemVer

func ValidateSemVer(version string) error

Types

type BinaryArtifact

type BinaryArtifact struct {
	ID        string `json:"id"`
	OS        string `json:"os"`
	Arch      string `json:"arch"`
	Target    string `json:"target"`
	Binary    string `json:"binary"`
	Path      string `json:"path"`
	Archive   string `json:"archive"`
	Format    string `json:"format"`
	ArchiveID string `json:"archive_id,omitempty"`
	SBOM      string `json:"sbom,omitempty"`
	Checksum  string `json:"checksum,omitempty"`
}

type BreakingSurface

type BreakingSurface struct {
	CLI             bool     `json:"cli"`
	API             bool     `json:"api"`
	InstallSurface  bool     `json:"install_surface"`
	SchemaContracts []string `json:"schema_contracts"`
}

type ChartMetadata

type ChartMetadata struct {
	Name           string `json:"name"`
	Version        string `json:"version"`
	AppVersion     string `json:"app_version"`
	Package        string `json:"package"`
	PackageDigest  string `json:"package_digest"`
	OCIReference   string `json:"oci_reference,omitempty"`
	Digest         string `json:"digest,omitempty"`
	Published      bool   `json:"published"`
	Repository     string `json:"repository,omitempty"`
	SourceChartDir string `json:"source_chart_dir"`
}

func PackageChart

func PackageChart(opts ChartPackageOptions) (ChartMetadata, error)

func ReadPackagedChartMetadata

func ReadPackagedChartMetadata(path string) (ChartMetadata, error)

type ChartPackageOptions

type ChartPackageOptions struct {
	RepoRoot                  string
	DistDir                   string
	ChartDir                  string
	AppVersion                string
	ChartVersion              string
	OCIRepository             string
	Publish                   bool
	AllowChartVersionMismatch bool
}

type ChecksumEntry

type ChecksumEntry struct {
	Name      string `json:"name"`
	Path      string `json:"path"`
	Algorithm string `json:"algorithm"`
	Digest    string `json:"digest"`
}

type ContractDescriptor

type ContractDescriptor struct {
	Name    string `json:"name"`
	Version string `json:"version"`
	Kind    string `json:"kind"`
	File    string `json:"file"`
	URI     string `json:"uri"`
	Digest  string `json:"digest"`
}

type ContractsManifest

type ContractsManifest struct {
	Schema      SchemaDescriptor     `json:"schema"`
	ProductName string               `json:"product_name"`
	AppVersion  string               `json:"app_version"`
	GeneratedAt string               `json:"generated_at"`
	Contracts   []ContractDescriptor `json:"contracts"`
}

func BuildContractsManifest

func BuildContractsManifest(repoRoot, appVersion, buildDate string) (ContractsManifest, error)

func GenerateContractsPack

func GenerateContractsPack(opts ContractsPackOptions) (ContractsManifest, string, error)

type ContractsPack

type ContractsPack struct {
	Archive  string `json:"archive"`
	Digest   string `json:"digest"`
	Manifest string `json:"manifest"`
}

type ContractsPackOptions

type ContractsPackOptions struct {
	RepoRoot   string
	DistDir    string
	AppVersion string
	BuildDate  string
}

type OCIImageManifest

type OCIImageManifest struct {
	Repository     string   `json:"repository"`
	References     []string `json:"references"`
	Tags           []string `json:"tags"`
	Digest         string   `json:"digest,omitempty"`
	Platforms      []string `json:"platforms"`
	LocalLayout    string   `json:"local_layout,omitempty"`
	Published      bool     `json:"published"`
	MediaType      string   `json:"media_type,omitempty"`
	BuildDate      string   `json:"build_date"`
	GitCommit      string   `json:"git_commit"`
	SourceArtifact string   `json:"source_artifact,omitempty"`
}

func BuildOCIImage

func BuildOCIImage(opts OCIImageOptions) (OCIImageManifest, error)

type OCIImageOptions

type OCIImageOptions struct {
	RepoRoot        string
	DistDir         string
	Dockerfile      string
	ImageRepository string
	AppVersion      string
	GitCommit       string
	BuildDate       string
	Publish         bool
}

type ReleaseChecksums

type ReleaseChecksums struct {
	Algorithm string          `json:"algorithm"`
	File      string          `json:"file"`
	Digest    string          `json:"digest"`
	Entries   []ChecksumEntry `json:"entries"`
}

type ReleaseManifest

type ReleaseManifest struct {
	Schema        SchemaDescriptor     `json:"schema"`
	ProductName   string               `json:"product_name"`
	AppVersion    string               `json:"app_version"`
	GitTag        string               `json:"git_tag,omitempty"`
	GitCommit     string               `json:"git_commit"`
	BuildDate     string               `json:"build_date"`
	Binaries      []BinaryArtifact     `json:"binaries"`
	Checksums     ReleaseChecksums     `json:"checksums"`
	OCIImages     []OCIImageManifest   `json:"oci_images"`
	HelmChart     ChartMetadata        `json:"helm_chart"`
	ContractsPack ContractsPack        `json:"contracts_pack"`
	Contracts     []ContractDescriptor `json:"contracts"`
	ReleaseNotes  ReleaseNotes         `json:"release_notes"`
}

func GenerateReleaseManifest

func GenerateReleaseManifest(opts ReleaseManifestOptions) (ReleaseManifest, error)

type ReleaseManifestOptions

type ReleaseManifestOptions struct {
	RepoRoot          string
	DistDir           string
	AppVersion        string
	GitCommit         string
	GitTag            string
	BuildDate         string
	Headline          string
	Summary           string
	Highlights        []string
	BreakingCLI       bool
	BreakingAPI       bool
	BreakingInstall   bool
	BreakingContracts []string
}

type ReleaseNotes

type ReleaseNotes struct {
	Headline   string          `json:"headline"`
	Summary    string          `json:"summary"`
	Highlights []string        `json:"highlights"`
	Breaking   BreakingSurface `json:"breaking"`
}

type SchemaDescriptor

type SchemaDescriptor struct {
	Name    string `json:"name"`
	Version string `json:"version"`
	URI     string `json:"uri"`
}

func ContractsManifestSchema

func ContractsManifestSchema() SchemaDescriptor

func ReleaseManifestSchema

func ReleaseManifestSchema() SchemaDescriptor

type ValidateOptions

type ValidateOptions struct {
	RepoRoot                  string
	DistDir                   string
	AppVersion                string
	BuildDate                 string
	RequirePublishedOCI       bool
	AllowChartVersionMismatch bool
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL