release

package
v0.3.16 Latest Latest
Warning

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

Go to latest
Published: Oct 1, 2025 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Based on:
	// https://opentelemetry.io/docs/specs/semconv/cicd/cicd-spans/
	// https://opentelemetry.io/docs/specs/semconv/resource/cicd/
	// https://opentelemetry.io/docs/specs/semconv/registry/attributes/cicd/
	AttributeCICDPipelineName          = "cicd.pipeline.name"
	AttributeCICDPipelineActionName    = "cicd.pipeline.action.name"
	AttributeCICDPipelineRunID         = "cicd.pipeline.run.id"
	AttributeCICDPipelineResult        = "cicd.pipeline.result"
	AttributeCICDPipelineRunState      = "cicd.pipeline.run.state"
	AttributeCICDPipelineRunURL        = "cicd.pipeline.run.url.full"
	AttributeCICDPipelineRunURLShort   = "cicd.pipeline.run.url.short"
	AttributeCICDPipelineTaskName      = "cicd.pipeline.task.name"
	AttributeCICDPipelineTaskRunID     = "cicd.pipeline.task.run.id"
	AttributeCICDPipelineTaskRunType   = "cicd.pipeline.task.run.type"
	AttributeCICDPipelineTaskRunResult = "cicd.pipeline.task.run.result"
	AttributeErrorType                 = "error.type"
)

Variables

View Source
var (
	GlobPackage     = libglob.MustCompile(`**/[^@]+/**`, '/')
	GlobRepoConfig  = libglob.MustCompile("**/-/repo.ocu.star/@*", '/')
	GlobRelease     = libglob.MustCompile("**/@*", '/')
	GlobTask        = libglob.MustCompile("**/@*/{task,deploy}/*", '/')
	GlobOp          = libglob.MustCompile("**/@*/op/*", '/')
	GlobDeployment  = libglob.MustCompile("**/@*/deploy/*", '/')
	GlobRun         = libglob.MustCompile("**/@*/{task,deploy}/*/*", '/')
	GlobLog         = libglob.MustCompile("**/@*/{task,deploy}/*/*/logs", '/')
	GlobCustom      = libglob.MustCompile("**/@*/custom/*", '/')
	GlobEnvironment = libglob.MustCompile("@*/environment/*", '/')
)
View Source
var (
	TagRegex        = regexp.MustCompile(`^[a-zA-Z0-9-_\.]+$`)
	TagReleaseRegex = regexp.MustCompile(`^r[0-9]+$`)
)

Functions

func CheckDependencies

func CheckDependencies(ctx context.Context, store refstore.Store, fn *models.Function) (bool, error)

func GetMissing

func GetMissing(inputs map[string]sdk.InputDescriptor) []sdk.InputDescriptor

func GetRunStatus added in v0.3.11

func GetRunStatus(ctx context.Context, store refstore.Store, runRef refs.Ref) (models.Status, error)

func InitializeRun added in v0.3.11

func InitializeRun(
	ctx context.Context,
	store refstore.Store,
	runRef refs.Ref,
	fn *models.Function,
) error

func LoadRef

func LoadRef(ctx context.Context, store refstore.Store, ref refs.Ref) (any, error)

LoadRef loads the document at a reference and

func LoadRefOfType

func LoadRefOfType[T any](ctx context.Context, store refstore.Store, ref refs.Ref) (T, error)

func PopulateInputs

func PopulateInputs(ctx context.Context, store refstore.Store, inputs map[string]sdk.InputDescriptor) (map[string]sdk.InputDescriptor, error)

func ReduceToRunRef added in v0.3.11

func ReduceToRunRef(ref refs.Ref) refs.Ref

func ReduceToTaskRef added in v0.3.11

func ReduceToTaskRef(ref refs.Ref) (refs.Ref, error)

func ReleaseStore

func ReleaseStore(ctx context.Context, ref string, store refstore.Store) (*releaseStore, error)

ReleaseStore creates a ReleaseStore from a string ref. The ref may be a link, or even a ref to a deploy or function within a release. It resolves the ref, removes the subpath/fragment, and creates a wrapped store.

func ResultToStatus

func ResultToStatus(result sdk.Result) models.Status

func RetrieveInput

func RetrieveInput(ctx context.Context, store refstore.Store, input sdk.InputDescriptor) (sdk.InputDescriptor, error)

RetrieveInput implements ReleaseStateStore.

func RunIsReady added in v0.3.11

func RunIsReady(ctx context.Context, state refstore.Store, ref string) (bool, error)

Types

type Custom

type Custom any

type FunctionState

type FunctionState struct {
	Current models.Function `json:"current"`
	History []StatusEvent   `json:"history"`
}

type Logger

type Logger func(fnRef refs.Ref, log sdk.Log)

type ReleaseInfo

type ReleaseInfo struct {
	Commit  string       `json:"commit"`
	Package *sdk.Package `json:"package"`
}

type ReleaseTracker

type ReleaseTracker struct {
	ReleaseRef refs.Ref
	// contains filtered or unexported fields
}

func NewReleaseTracker

func NewReleaseTracker(
	ctx context.Context,
	config *sdk.Config,
	pkg *sdk.Package,
	releaseRef refs.Ref,
	intent refstore.Store,
	state refstore.Store,
) (*ReleaseTracker, error)

func (*ReleaseTracker) FilteredNextRun added in v0.3.11

func (r *ReleaseTracker) FilteredNextRun(ctx context.Context) (map[refs.Ref]*models.Run, error)

FilteredNextRun returns any runs that are pending execution, but only those that have all their inputs available.

func (*ReleaseTracker) GetReleaseInfo

func (r *ReleaseTracker) GetReleaseInfo(ctx context.Context) (*ReleaseInfo, error)

func (*ReleaseTracker) GetReleaseSummary

func (r *ReleaseTracker) GetReleaseSummary(ctx context.Context) (*pipeline.ReleaseSummary, error)

func (*ReleaseTracker) GetTags

func (r *ReleaseTracker) GetTags(ctx context.Context) ([]string, error)

func (*ReleaseTracker) InitRelease

func (r *ReleaseTracker) InitRelease(ctx context.Context, commit string) error

func (*ReleaseTracker) Op added in v0.3.12

func (r *ReleaseTracker) Op(ctx context.Context, ref string, logger Logger) error

func (*ReleaseTracker) PopulateInputs

func (r *ReleaseTracker) PopulateInputs(ctx context.Context, fnRef refs.Ref, fn *models.Function) ([]sdk.InputDescriptor, error)

func (*ReleaseTracker) ReleaseStatus

func (r *ReleaseTracker) ReleaseStatus(ctx context.Context) (models.Status, error)

func (*ReleaseTracker) Retry

func (r *ReleaseTracker) Retry(ctx context.Context, logger Logger) error

func (*ReleaseTracker) Run

func (r *ReleaseTracker) Run(
	ctx context.Context,
	logger sdk.Logger,
	runRef refs.Ref,
	run *models.Run,
) (sdk.Result, error)

func (*ReleaseTracker) RunDown

func (r *ReleaseTracker) RunDown(ctx context.Context) error

func (*ReleaseTracker) RunToPause

func (r *ReleaseTracker) RunToPause(ctx context.Context, logger Logger) error

func (*ReleaseTracker) UnfilteredNextRun added in v0.3.11

func (r *ReleaseTracker) UnfilteredNextRun(ctx context.Context) (map[refs.Ref]*models.Run, error)

UnfilteredNextRun returns all runs that are pending execution, regardless of whether or not their inputs are available.

type StatusEvent

type StatusEvent struct {
	Time   time.Time     `json:"time"`
	Status models.Status `json:"status"`
}

Jump to

Keyboard shortcuts

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