pipeline

package
v2.4.1 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const ExitCodeKilled int = 137

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_STATUS"] = "success"
	state.Pipeline.Step.Environment["CI_PIPELINE_STARTED"] = strconv.FormatInt(state.Pipeline.Time, 10)
	state.Pipeline.Step.Environment["CI_PIPELINE_FINISHED"] = strconv.FormatInt(time.Now().Unix(), 10)

	state.Pipeline.Step.Environment["CI_STEP_STATUS"] = "success"
	state.Pipeline.Step.Environment["CI_STEP_STARTED"] = strconv.FormatInt(state.Pipeline.Time, 10)
	state.Pipeline.Step.Environment["CI_STEP_FINISHED"] = strconv.FormatInt(time.Now().Unix(), 10)

	if state.Pipeline.Error != nil {
		state.Pipeline.Step.Environment["CI_PIPELINE_STATUS"] = "failure"
		state.Pipeline.Step.Environment["CI_STEP_STATUS"] = "failure"
	}
	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.

Functions

This section is empty.

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.Reader) 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

type State

type State struct {
	// Global state of the pipeline.
	Pipeline struct {
		// Pipeline time started
		Time 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