pipeline

package
v5.6.1 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2026 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ExitCodeKilled int = 137

	// Store no more than 1mb in a log-line as 4mb is the limit of a grpc message
	// and log-lines needs to be parsed by the browsers later on.
	MaxLogLineLength int = 1 * 1024 * 1024 // 1mb

	InternalLabelPrefix string = "crowci"
	LabelForgeRemoteID  string = InternalLabelPrefix + "/forge-id"
	LabelRepoForgeID    string = InternalLabelPrefix + "/repo-forge-id"
	LabelRepoID         string = InternalLabelPrefix + "/repo-id"
	LabelRepoName       string = InternalLabelPrefix + "/repo-name"
	LabelRepoFullName   string = InternalLabelPrefix + "/repo-full-name"
	LabelBranch         string = InternalLabelPrefix + "/branch"
	LabelOrgID          string = InternalLabelPrefix + "/org-id"
	LabelPlatform       string = "platform"
	LabelHostname       string = "hostname"
	LabelBackend        string = "backend"
	LabelAgent          string = "agent"

	// LabelFilter* constants are used for agent filtering.
	LabelFilterOrg      string = "org-id"
	LabelFilterRepo     string = "repo"
	LabelFilterPlatform string = "platform"
	LabelFilterHostname string = "hostname"
	LabelFilterBackend  string = "backend"
	LabelFilterAgent    string = "agent"
)

Variables

View Source
var (
	// ErrSkip is used as a return value when container execution should be
	// skipped at runtime. It is not returned as an error by any function.
	ErrSkip = errors.New("Skipped")

	// ErrCancel is used as a return value when the container execution receives
	// a cancellation signal from the context.
	ErrCancel = errors.New("Canceled")
)
View Source
var DefaultTracer = TraceFunc(func(state *State) error {
	if state.Process.Exited {
		return nil
	}
	if state.Pipeline.Step.Environment == nil {
		return nil
	}
	state.Pipeline.Step.Environment["CI_PIPELINE_STARTED"] = strconv.FormatInt(state.Pipeline.Started, 10)

	state.Pipeline.Step.Environment["CI_STEP_STARTED"] = strconv.FormatInt(state.Pipeline.Started, 10)

	return nil
})

DefaultTracer provides a tracer that updates the CI_ environment variables to include the correct timestamp and status. TODO: find either a new home or better name for this.

ManagedLabels is a list of all labels added automatically to tasks by Crow.

Functions

func CancelShutdown

func CancelShutdown()

func GetShutdownCtx

func GetShutdownCtx() context.Context

func SetPreserveWorkflows

func SetPreserveWorkflows(preserve bool)

SetPreserveWorkflows signals that workflows should be preserved (not destroyed) on shutdown. This is used when the agent shuts down due to server disconnect, allowing the containers/pods to be adopted by a restarted agent.

func ShouldPreserveWorkflows

func ShouldPreserveWorkflows() bool

ShouldPreserveWorkflows returns true if workflows should be preserved on shutdown.

Types

type ExitError

type ExitError struct {
	UUID string
	Code int
}

An ExitError reports an unsuccessful exit.

func (*ExitError) Error

func (e *ExitError) Error() string

Error returns the error message in string format.

type Logger

type Logger func(*backend.Step, io.ReadCloser) error

Logger handles the process logging.

type OomError

type OomError struct {
	UUID string
	Code int
}

An OomError reports the process received an OOMKill from the kernel.

func (*OomError) Error

func (e *OomError) Error() string

Error returns the error message in string format.

type Option

type Option func(*Runtime)

Option configures a runtime option.

func WithBackend

func WithBackend(backend backend.Backend) Option

WithBackend returns an option configured with a runtime engine.

func WithContext

func WithContext(ctx context.Context) Option

WithContext returns an option configured with a context.

func WithDescription

func WithDescription(desc map[string]string) Option

func WithLogger

func WithLogger(logger Logger) Option

WithLogger returns an option configured with a runtime logger.

func WithTaskUUID

func WithTaskUUID(uuid string) Option

func WithTracer

func WithTracer(tracer Tracer) Option

WithTracer returns an option configured with a runtime tracer.

type Runtime

type Runtime struct {
	Description map[string]string // The runtime descriptors.
	// contains filtered or unexported fields
}

Runtime is a configuration runtime.

func New

func New(spec *backend.Config, opts ...Option) *Runtime

New returns a new runtime using the specified runtime configuration and runtime engine.

func (*Runtime) MakeLogger

func (r *Runtime) MakeLogger() zerolog.Logger

func (*Runtime) Run

func (r *Runtime) Run(runnerCtx context.Context) error

Run starts the execution of a workflow and waits for it to complete.

func (*Runtime) RunAdopted

func (r *Runtime) RunAdopted(runnerCtx context.Context) error

RunAdopted resumes monitoring of an adopted workflow (from a previous agent instance). Unlike Run, this skips SetupWorkflow (environment already exists) and uses ResumeStep instead of StartStep (containers already running).

type State

type State struct {
	// Global state of the pipeline.
	Pipeline struct {
		// Pipeline time started
		Started int64 `json:"time"`
		// Current pipeline step
		Step *backend.Step `json:"step"`
		// Current pipeline error state
		Error error `json:"error"`
	}

	// Current process state.
	Process *backend.State
}

State defines the pipeline and process state.

type TraceFunc

type TraceFunc func(*State) error

TraceFunc type is an adapter to allow the use of ordinary functions as a Tracer.

func (TraceFunc) Trace

func (f TraceFunc) Trace(state *State) error

Trace calls f(state).

type Tracer

type Tracer interface {
	Trace(*State) error
}

Tracer handles process tracing.

Jump to

Keyboard shortcuts

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