model

package
v1.12.8 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsValidPhase

func IsValidPhase(phase string) bool

IsValidPhase checks whether a phase is one of pre/main/post.

func NormalizePhase

func NormalizePhase(phase string) string

NormalizePhase returns a normalized phase string and defaults empty values to "main".

Types

type Component

type Component struct {
	Name                      string                   `yaml:"name" json:"name"`
	Type                      string                   `yaml:"type" json:"type"`
	Domain                    string                   `yaml:"domain" json:"domain"`
	Enabled                   bool                     `yaml:"enabled" json:"enabled"`
	Path                      string                   `yaml:"path" json:"path"`
	Subscribe                 ComponentSubscribe       `yaml:"subscribe" json:"subscribe"`
	CompositionRef            *ComponentCompositionRef `yaml:"compositionRef,omitempty" json:"compositionRef,omitempty"`
	Inputs                    map[string]interface{}   `yaml:"inputs" json:"inputs"`
	Overrides                 ComponentOverrides       `yaml:"overrides" json:"overrides"`
	Labels                    map[string]string        `yaml:"labels" json:"labels"`
	DependsOn                 []Dependency             `yaml:"dependsOn" json:"dependsOn"`
	ResolvedComposition       string                   `yaml:"-" json:"-"`
	ResolvedCompositionSource string                   `yaml:"-" json:"-"`
	SourcePath                string                   `yaml:"-" json:"-"`
}

Component is execution-agnostic declaration

type ComponentCompositionRef

type ComponentCompositionRef struct {
	Source string `yaml:"source,omitempty" json:"source,omitempty"`
	Name   string `yaml:"name,omitempty" json:"name,omitempty"`
}

ComponentCompositionRef overrides the source used for a single component.

type ComponentInstance

type ComponentInstance struct {
	ComponentName             string
	Environment               string
	Type                      string
	ResolvedComposition       string
	ResolvedCompositionSource string
	Domain                    string
	Path                      string
	SourcePath                string
	Labels                    map[string]string
	Inputs                    map[string]interface{}
	StepOverrides             []Step
	Policies                  map[string]interface{}
	DependsOn                 []ResolvedDependency
	Enabled                   bool
}

ComponentInstance is the expanded form of Component for a specific environment

type ComponentManifest

type ComponentManifest struct {
	APIVersion string    `yaml:"apiVersion" json:"apiVersion"`
	Kind       string    `yaml:"kind" json:"kind"`
	Metadata   Metadata  `yaml:"metadata" json:"metadata"`
	Spec       Component `yaml:"spec" json:"spec"`
}

ComponentManifest is the CRD representation stored in component.yaml files.

type ComponentOverrides

type ComponentOverrides struct {
	Steps []Step `yaml:"steps" json:"steps"`
}

ComponentOverrides defines component-specific planner overrides.

type ComponentSubscribe

type ComponentSubscribe struct {
	Environments []string `yaml:"environments" json:"environments"`
}

ComponentSubscribe declares which environments a component participates in.

type ComponentTree

type ComponentTree struct {
	APIVersion string                   `yaml:"apiVersion" json:"apiVersion"`
	Kind       string                   `yaml:"kind" json:"kind"`
	Metadata   ComponentTreeMetadata    `yaml:"metadata" json:"metadata"`
	Discovery  ComponentTreeDiscovery   `yaml:"discovery" json:"discovery"`
	Components []ComponentTreeComponent `yaml:"components" json:"components"`
}

ComponentTree captures the discovered component graph for cache reuse.

type ComponentTreeComponent

type ComponentTreeComponent struct {
	Name        string                 `yaml:"name" json:"name"`
	Type        string                 `yaml:"type" json:"type"`
	Domain      string                 `yaml:"domain,omitempty" json:"domain,omitempty"`
	Enabled     bool                   `yaml:"enabled" json:"enabled"`
	Path        string                 `yaml:"path,omitempty" json:"path,omitempty"`
	Subscribe   ComponentSubscribe     `yaml:"subscribe,omitempty" json:"subscribe,omitempty"`
	Inputs      map[string]interface{} `yaml:"inputs,omitempty" json:"inputs,omitempty"`
	Overrides   ComponentOverrides     `yaml:"overrides,omitempty" json:"overrides,omitempty"`
	Labels      map[string]string      `yaml:"labels,omitempty" json:"labels,omitempty"`
	DependsOn   []Dependency           `yaml:"dependsOn,omitempty" json:"dependsOn,omitempty"`
	Source      string                 `yaml:"source" json:"source"`
	SourcePath  string                 `yaml:"sourcePath,omitempty" json:"sourcePath,omitempty"`
	FileSize    int64                  `yaml:"fileSize,omitempty" json:"fileSize,omitempty"`
	FileModTime string                 `yaml:"fileModTime,omitempty" json:"fileModTime,omitempty"`
}

ComponentTreeComponent stores a single component entry in the discovery cache.

func FromComponent

func FromComponent(component Component, source string) ComponentTreeComponent

FromComponent creates a cache entry from the internal component model.

func (ComponentTreeComponent) ToComponent

func (entry ComponentTreeComponent) ToComponent() Component

ToComponent converts a cache entry back into the internal component model.

type ComponentTreeDiscovery

type ComponentTreeDiscovery struct {
	Roots []string `yaml:"roots" json:"roots"`
}

ComponentTreeDiscovery records discovery settings used to build the tree.

type ComponentTreeMetadata

type ComponentTreeMetadata struct {
	Intent      string `yaml:"intent" json:"intent"`
	GeneratedAt string `yaml:"generatedAt" json:"generatedAt"`
}

ComponentTreeMetadata describes the cache document itself.

type CompositionConfig

type CompositionConfig struct {
	Sources    []CompositionSource   `yaml:"sources,omitempty" json:"sources,omitempty"`
	Resolution CompositionResolution `yaml:"resolution,omitempty" json:"resolution,omitempty"`
}

CompositionConfig declares where composition definitions are loaded from.

type CompositionDependency

type CompositionDependency struct {
	Name     string `yaml:"name" json:"name"`
	Ref      string `yaml:"ref" json:"ref"`
	Optional bool   `yaml:"optional,omitempty" json:"optional,omitempty"`
}

CompositionDependency captures optional transitive package references.

type CompositionDocument

type CompositionDocument struct {
	APIVersion string                  `yaml:"apiVersion" json:"apiVersion"`
	Kind       string                  `yaml:"kind" json:"kind"`
	Metadata   Metadata                `yaml:"metadata" json:"metadata"`
	Spec       CompositionDocumentSpec `yaml:"spec" json:"spec"`
}

CompositionDocument is the self-describing composition definition.

type CompositionDocumentSpec

type CompositionDocumentSpec struct {
	Type        string                 `yaml:"type" json:"type"`
	Description string                 `yaml:"description,omitempty" json:"description,omitempty"`
	DefaultJob  string                 `yaml:"defaultJob" json:"defaultJob"`
	InputSchema map[string]interface{} `yaml:"inputSchema,omitempty" json:"inputSchema,omitempty"`
	Jobs        []JobSpec              `yaml:"jobs" json:"jobs"`
}

CompositionDocumentSpec is the portable contract for one composition type.

type CompositionExport

type CompositionExport struct {
	Composition string `yaml:"composition" json:"composition"`
	Path        string `yaml:"path" json:"path"`
}

CompositionExport maps a logical composition name to a file in the package.

type CompositionLock

type CompositionLock struct {
	APIVersion string                  `yaml:"apiVersion" json:"apiVersion"`
	Kind       string                  `yaml:"kind" json:"kind"`
	Sources    []CompositionLockSource `yaml:"sources" json:"sources"`
}

CompositionLock records resolved source digests for reproducible planning.

type CompositionLockSource

type CompositionLockSource struct {
	Name           string   `yaml:"name" json:"name"`
	Kind           string   `yaml:"kind" json:"kind"`
	Ref            string   `yaml:"ref,omitempty" json:"ref,omitempty"`
	Path           string   `yaml:"path,omitempty" json:"path,omitempty"`
	ResolvedDigest string   `yaml:"resolvedDigest" json:"resolvedDigest"`
	Exports        []string `yaml:"exports,omitempty" json:"exports,omitempty"`
}

CompositionLockSource stores one resolved source entry in the lock file.

type CompositionPackage

type CompositionPackage struct {
	APIVersion string                 `yaml:"apiVersion" json:"apiVersion"`
	Kind       string                 `yaml:"kind" json:"kind"`
	Metadata   Metadata               `yaml:"metadata" json:"metadata"`
	Spec       CompositionPackageSpec `yaml:"spec" json:"spec"`
}

CompositionPackage is the package manifest at the root of a composition package.

type CompositionPackageOrun

type CompositionPackageOrun struct {
	MinVersion string `yaml:"minVersion,omitempty" json:"minVersion,omitempty"`
}

CompositionPackageOrun constrains compatible orun versions.

type CompositionPackageSpec

type CompositionPackageSpec struct {
	Version      string                  `yaml:"version" json:"version"`
	Orun         CompositionPackageOrun  `yaml:"orun,omitempty" json:"orun,omitempty"`
	Exports      []CompositionExport     `yaml:"exports" json:"exports"`
	Dependencies []CompositionDependency `yaml:"dependencies,omitempty" json:"dependencies,omitempty"`
}

CompositionPackageSpec defines versioned exported compositions.

type CompositionResolution

type CompositionResolution struct {
	Precedence []string          `yaml:"precedence,omitempty" json:"precedence,omitempty"`
	Bindings   map[string]string `yaml:"bindings,omitempty" json:"bindings,omitempty"`
}

CompositionResolution controls how exported composition types are selected.

type CompositionSource

type CompositionSource struct {
	Name       string            `yaml:"name" json:"name"`
	Kind       string            `yaml:"kind" json:"kind"`
	Path       string            `yaml:"path,omitempty" json:"path,omitempty"`
	Ref        string            `yaml:"ref,omitempty" json:"ref,omitempty"`
	Digest     string            `yaml:"digest,omitempty" json:"digest,omitempty"`
	PullPolicy string            `yaml:"pullPolicy,omitempty" json:"pullPolicy,omitempty"`
	Verify     *VerifyPolicy     `yaml:"verify,omitempty" json:"verify,omitempty"`
	Metadata   map[string]string `yaml:"metadata,omitempty" json:"metadata,omitempty"`
}

CompositionSource describes one source of composition packages.

type Dependency

type Dependency struct {
	Component   string `yaml:"component" json:"component"`
	Environment string `yaml:"environment" json:"environment"`
	Scope       string `yaml:"scope" json:"scope"`         // same-environment, cross-environment
	Condition   string `yaml:"condition" json:"condition"` // success, always, failure
}

Dependency specifies inter-component execution constraints

type Discovery

type Discovery struct {
	Roots []string `yaml:"roots" json:"roots"`
}

Discovery limits repository scanning for external component manifests.

type Environment

type Environment struct {
	Path      string                 `yaml:"path" json:"path"`
	Selectors EnvironmentSelectors   `yaml:"selectors" json:"selectors"`
	Defaults  map[string]interface{} `yaml:"defaults" json:"defaults"`
	Policies  map[string]interface{} `yaml:"policies" json:"policies"`
}

Environment defines environment runtime contexts

type EnvironmentSelectors

type EnvironmentSelectors struct {
	Components []string `yaml:"components" json:"components"`
	Domains    []string `yaml:"domains" json:"domains"`
}

EnvironmentSelectors specifies which components apply to an environment

type Group

type Group struct {
	Path     string                 `yaml:"path" json:"path"`
	Policies map[string]interface{} `yaml:"policies" json:"policies"`
	Defaults map[string]interface{} `yaml:"defaults" json:"defaults"`
}

Group defines ownership and policy constraints

type Intent

type Intent struct {
	APIVersion   string                 `yaml:"apiVersion" json:"apiVersion"`
	Kind         string                 `yaml:"kind" json:"kind"`
	Metadata     Metadata               `yaml:"metadata" json:"metadata"`
	Discovery    Discovery              `yaml:"discovery" json:"discovery"`
	Compositions CompositionConfig      `yaml:"compositions,omitempty" json:"compositions,omitempty"`
	Groups       map[string]Group       `yaml:"groups" json:"groups"`
	Environments map[string]Environment `yaml:"environments" json:"environments"`
	Components   []Component            `yaml:"components" json:"components"`
	Execution    IntentExecution        `yaml:"execution,omitempty" json:"execution,omitempty"`
}

Intent is the top-level CRD for declarative deployment

type IntentExecution added in v1.12.0

type IntentExecution struct {
	State IntentExecutionState `yaml:"state,omitempty" json:"state,omitempty"`
}

IntentExecution holds optional execution-layer configuration in intent.yaml.

type IntentExecutionState added in v1.12.0

type IntentExecutionState struct {
	// Mode is "local" (default) or "remote".
	Mode string `yaml:"mode,omitempty" json:"mode,omitempty"`
	// BackendURL is the URL of the orun-backend instance for remote mode.
	BackendURL string `yaml:"backendUrl,omitempty" json:"backendUrl,omitempty"`
}

IntentExecutionState configures where execution state is stored.

type JobBinding

type JobBinding struct {
	APIVersion string         `yaml:"apiVersion" json:"apiVersion"`
	Kind       string         `yaml:"kind" json:"kind"`
	Metadata   Metadata       `yaml:"metadata" json:"metadata"`
	Spec       JobBindingSpec `yaml:"spec" json:"spec"`
}

JobBinding is a k8s-style declarative binding between a model and its jobs

type JobBindingSpec

type JobBindingSpec struct {
	Model       string         `yaml:"model" json:"model"`           // Model name (helm, terraform, charts, etc)
	Jobs        []JobRef       `yaml:"jobs" json:"jobs"`             // List of available jobs
	DefaultJob  string         `yaml:"defaultJob" json:"defaultJob"` // Default job to execute
	Constraints JobConstraints `yaml:"constraints,omitempty" json:"constraints,omitempty"`
}

JobBindingSpec specifies which jobs are available for a model

type JobConstraints

type JobConstraints struct {
	Platforms  []string `yaml:"platforms,omitempty" json:"platforms,omitempty"`   // kubernetes, docker, etc
	MinVersion string   `yaml:"minVersion,omitempty" json:"minVersion,omitempty"` // Minimum tool version
}

JobConstraints defines constraints for job execution

type JobGraph

type JobGraph struct {
	Jobs  map[string]*JobInstance
	Edges map[string][]string // jobID -> [dependentJobIDs]
}

JobGraph represents the logical DAG of all job instances

type JobInstance

type JobInstance struct {
	ID          string
	Name        string
	Component   string
	Environment string
	Composition string
	RunsOn      string
	Path        string
	Steps       []RenderedStep
	DependsOn   []string
	Timeout     string
	Retries     int
	Config      map[string]interface{} // Single source of truth for env vars
	Labels      map[string]string
}

JobInstance is a materialized job for a component in an environment

type JobRef

type JobRef struct {
	Name     string `yaml:"name" json:"name"`
	Required bool   `yaml:"required,omitempty" json:"required,omitempty"` // Must be included in plan
}

JobRef is a reference to a job by name

type JobRegistry

type JobRegistry struct {
	APIVersion string    `yaml:"apiVersion" json:"apiVersion"`
	Kind       string    `yaml:"kind" json:"kind"`
	Metadata   Metadata  `yaml:"metadata" json:"metadata"`
	Jobs       []JobSpec `yaml:"jobs" json:"jobs"`
}

JobRegistry holds all job definitions (k8s-style declarative format)

type JobSpec

type JobSpec struct {
	Name        string                 `yaml:"name" json:"name"`
	Description string                 `yaml:"description" json:"description"`
	RunsOn      string                 `yaml:"runsOn,omitempty" json:"runsOn,omitempty"`
	Timeout     string                 `yaml:"timeout" json:"timeout"`
	Retries     int                    `yaml:"retries" json:"retries"`
	Steps       []Step                 `yaml:"steps" json:"steps"`
	Inputs      map[string]interface{} `yaml:"inputs" json:"inputs"`
	Labels      map[string]string      `yaml:"labels" json:"labels"`
}

JobSpec defines a complete job specification with multiple steps

type Metadata

type Metadata struct {
	Name        string `yaml:"name" json:"name"`
	Description string `yaml:"description" json:"description"`
	Namespace   string `yaml:"namespace" json:"namespace"`
}

Metadata holds standard object metadata

type NormalizedIntent

type NormalizedIntent struct {
	Metadata       Metadata
	Groups         map[string]Group
	Environments   map[string]Environment
	Components     map[string]Component
	ComponentIndex map[string]Component // for fast lookup
}

NormalizedIntent is the canonical internal representation

type Plan

type Plan struct {
	APIVersion string        `json:"apiVersion" yaml:"apiVersion"`
	Kind       string        `json:"kind" yaml:"kind"`
	Metadata   PlanMetadata  `json:"metadata" yaml:"metadata"`
	Execution  PlanExecution `json:"execution,omitempty" yaml:"execution,omitempty"`
	Spec       PlanSpec      `json:"spec,omitempty" yaml:"spec,omitempty"`
	Jobs       []PlanJob     `json:"jobs" yaml:"jobs"`
}

Plan is the final execution-ready workflow DAG

type PlanExecution

type PlanExecution struct {
	Concurrency int    `json:"concurrency,omitempty" yaml:"concurrency,omitempty"`
	FailFast    bool   `json:"failFast" yaml:"failFast"`
	StateFile   string `json:"stateFile,omitempty" yaml:"stateFile,omitempty"`
}

PlanExecution defines runtime behavior for plan execution.

type PlanJob

type PlanJob struct {
	ID          string                 `json:"id" yaml:"id"`
	Name        string                 `json:"name" yaml:"name"`
	Component   string                 `json:"component" yaml:"component"`
	Environment string                 `json:"environment" yaml:"environment"`
	Composition string                 `json:"composition,omitempty" yaml:"composition,omitempty"`
	JobRegistry string                 `json:"jobRegistry,omitempty" yaml:"jobRegistry,omitempty"` // Name of the JobRegistry used
	Job         string                 `json:"job,omitempty" yaml:"job,omitempty"`                 // Specific job from registry
	RunsOn      string                 `json:"runsOn,omitempty" yaml:"runsOn,omitempty"`
	Path        string                 `json:"path,omitempty" yaml:"path,omitempty"` // Working directory for job execution
	Steps       []PlanStep             `json:"steps" yaml:"steps"`
	DependsOn   []string               `json:"dependsOn,omitempty" yaml:"dependsOn,omitempty"`
	Timeout     string                 `json:"timeout,omitempty" yaml:"timeout,omitempty"`
	Retries     int                    `json:"retries,omitempty" yaml:"retries,omitempty"`
	Env         map[string]interface{} `json:"env,omitempty" yaml:"env,omitempty"`
	Labels      map[string]string      `json:"labels,omitempty" yaml:"labels,omitempty"`
	Config      map[string]interface{} `json:"config,omitempty" yaml:"config,omitempty"`
}

PlanJob is the execution unit in the final plan

type PlanMetadata

type PlanMetadata struct {
	Name        string     `json:"name" yaml:"name"`
	Description string     `json:"description,omitempty" yaml:"description,omitempty"`
	Namespace   string     `json:"namespace,omitempty" yaml:"namespace,omitempty"`
	GeneratedAt string     `json:"generatedAt,omitempty" yaml:"generatedAt,omitempty"`
	Checksum    string     `json:"checksum,omitempty" yaml:"checksum,omitempty"`
	Scope       *PlanScope `json:"scope,omitempty" yaml:"scope,omitempty"`
}

PlanMetadata captures immutable plan generation details.

type PlanScope

type PlanScope struct {
	DetectedComponent string   `json:"detectedComponent" yaml:"detectedComponent"`
	Components        []string `json:"components" yaml:"components"`
}

PlanScope records the component scoping applied when the plan was generated.

type PlanSpec

type PlanSpec struct {
	JobBindings        map[string]string           `json:"jobBindings,omitempty" yaml:"jobBindings,omitempty"` // model -> JobRegistry name mapping
	CompositionSources []ResolvedCompositionSource `json:"compositionSources,omitempty" yaml:"compositionSources,omitempty"`
}

PlanSpec holds specification about the plan and its bindings

type PlanStep

type PlanStep struct {
	ID               string                 `json:"id,omitempty" yaml:"id,omitempty"`
	Name             string                 `json:"name,omitempty" yaml:"name,omitempty"`
	Phase            string                 `json:"phase,omitempty" yaml:"phase,omitempty"`
	Order            int                    `json:"order,omitempty" yaml:"order,omitempty"`
	Run              string                 `json:"run,omitempty" yaml:"run,omitempty"`
	Use              string                 `json:"use,omitempty" yaml:"use,omitempty"`
	With             map[string]interface{} `json:"with,omitempty" yaml:"with,omitempty"`
	Env              map[string]interface{} `json:"env,omitempty" yaml:"env,omitempty"`
	Shell            string                 `json:"shell,omitempty" yaml:"shell,omitempty"`
	WorkingDirectory string                 `json:"working-directory,omitempty" yaml:"working-directory,omitempty"`
	Timeout          string                 `json:"timeout,omitempty" yaml:"timeout,omitempty"`
	Retry            int                    `json:"retry,omitempty" yaml:"retry,omitempty"`
	OnFailure        string                 `json:"onFailure,omitempty" yaml:"onFailure,omitempty"`
}

PlanStep is a step in the final plan

type RenderedStep

type RenderedStep struct {
	ID               string                 `json:"id,omitempty"`
	Name             string                 `json:"name"`
	Phase            string                 `json:"phase,omitempty"`
	Order            int                    `json:"order,omitempty"`
	Run              string                 `json:"run,omitempty"`
	Use              string                 `json:"use,omitempty"`
	With             map[string]interface{} `json:"with,omitempty"`
	Env              map[string]interface{} `json:"env,omitempty"`
	Shell            string                 `json:"shell,omitempty"`
	WorkingDirectory string                 `json:"workingDirectory,omitempty"`
	Timeout          string                 `json:"timeout"`
	Retry            int                    `json:"retry"`
	OnFailure        string                 `json:"onFailure"`
}

RenderedStep is a step with all templates resolved

type ResolvedCompositionSource

type ResolvedCompositionSource struct {
	Name           string   `json:"name" yaml:"name"`
	Kind           string   `json:"kind" yaml:"kind"`
	Ref            string   `json:"ref,omitempty" yaml:"ref,omitempty"`
	Path           string   `json:"path,omitempty" yaml:"path,omitempty"`
	ResolvedDigest string   `json:"resolvedDigest" yaml:"resolvedDigest"`
	Exports        []string `json:"exports,omitempty" yaml:"exports,omitempty"`
}

ResolvedCompositionSource records which sources were used to compile the plan.

type ResolvedDependency

type ResolvedDependency struct {
	ComponentName string
	Environment   string
	Scope         string
	Condition     string
}

ResolvedDependency is a dependency with resolved target component

type Stack

type Stack struct {
	APIVersion string        `yaml:"apiVersion" json:"apiVersion"`
	Kind       string        `yaml:"kind" json:"kind"`
	Metadata   StackMetadata `yaml:"metadata" json:"metadata"`
	Registry   StackRegistry `yaml:"registry" json:"registry"`
	Spec       StackSpec     `yaml:"spec" json:"spec"`
}

Stack is the new-format package manifest (replaces CompositionPackage / orun.yaml). It lives at stack.yaml in the package root and uses apiVersion: orun.io/v1.

type StackCompositionEntry

type StackCompositionEntry struct {
	Path string `yaml:"path" json:"path"`
}

StackCompositionEntry is a path reference to a compositions.yaml within the stack.

type StackMetadata

type StackMetadata struct {
	Name        string   `yaml:"name" json:"name"`
	Title       string   `yaml:"title,omitempty" json:"title,omitempty"`
	Version     string   `yaml:"version" json:"version"`
	Description string   `yaml:"description,omitempty" json:"description,omitempty"`
	Owner       string   `yaml:"owner,omitempty" json:"owner,omitempty"`
	Tags        []string `yaml:"tags,omitempty" json:"tags,omitempty"`
}

StackMetadata holds human-facing metadata for a stack package.

type StackRegistry

type StackRegistry struct {
	Host       string `yaml:"host" json:"host"`
	Namespace  string `yaml:"namespace" json:"namespace"`
	Repository string `yaml:"repository" json:"repository"`
	Visibility string `yaml:"visibility,omitempty" json:"visibility,omitempty"`
}

StackRegistry describes the OCI registry where the stack is published.

type StackSpec

type StackSpec struct {
	Compositions []StackCompositionEntry `yaml:"compositions,omitempty" json:"compositions,omitempty"`
}

StackSpec lists the composition files included in the stack. When Compositions is empty the packager auto-discovers every compositions.yaml found by walking the directory that contains stack.yaml.

type Step

type Step struct {
	ID               string                 `yaml:"id,omitempty" json:"id,omitempty"`
	Name             string                 `yaml:"name" json:"name"`
	Phase            string                 `yaml:"phase,omitempty" json:"phase,omitempty"`
	Order            int                    `yaml:"order,omitempty" json:"order,omitempty"`
	Run              string                 `yaml:"run,omitempty" json:"run,omitempty"`
	Use              string                 `yaml:"use,omitempty" json:"use,omitempty"`
	With             map[string]interface{} `yaml:"with,omitempty" json:"with,omitempty"`
	Env              map[string]interface{} `yaml:"env,omitempty" json:"env,omitempty"`
	Shell            string                 `yaml:"shell,omitempty" json:"shell,omitempty"`
	WorkingDirectory string                 `yaml:"working-directory,omitempty" json:"working-directory,omitempty"`
	Timeout          string                 `yaml:"timeout,omitempty" json:"timeout,omitempty"`
	Retry            int                    `yaml:"retry,omitempty" json:"retry,omitempty"`
	OnFailure        string                 `yaml:"onFailure,omitempty" json:"onFailure,omitempty"` // stop, continue
}

Step is a single execution unit within a job

type StepPhase

type StepPhase string

StepPhase defines execution phase for a job step.

const (
	PhasePre  StepPhase = "pre"
	PhaseMain StepPhase = "main"
	PhasePost StepPhase = "post"
)

type VerifyPolicy

type VerifyPolicy struct {
	Provider string `yaml:"provider,omitempty" json:"provider,omitempty"`
	KeyRef   string `yaml:"keyRef,omitempty" json:"keyRef,omitempty"`
	Required bool   `yaml:"required,omitempty" json:"required,omitempty"`
}

VerifyPolicy reserves room for future supply-chain verification settings.

Jump to

Keyboard shortcuts

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