pipeline

package
v0.15.5 Latest Latest
Warning

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

Go to latest
Published: Oct 13, 2022 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

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

	state.Pipeline.Step.Environment["CI_JOB_STATUS"] = "success"
	state.Pipeline.Step.Environment["CI_JOB_STARTED"] = strconv.FormatInt(state.Pipeline.Time, 10)
	state.Pipeline.Step.Environment["CI_JOB_FINISHED"] = strconv.FormatInt(time.Now().Unix(), 10)

	if state.Pipeline.Error != nil {
		state.Pipeline.Step.Environment["CI_BUILD_STATUS"] = "failure"
		state.Pipeline.Step.Environment["CI_JOB_STATUS"] = "failure"
	}
	return nil
})

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

Functions

func Parse

func Parse(r io.Reader) (*backend.Config, error)

Parse parses the pipeline config from an io.Reader.

func ParseFile

func ParseFile(path string) (*backend.Config, error)

ParseFile parses the pipeline config from a file.

func ParseString

func ParseString(s string) (*backend.Config, error)

ParseString parses the pipeline config from a string.

Types

type ExitError

type ExitError struct {
	Name 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 LogFunc

type LogFunc func(*backend.Step, multipart.Reader) error

LogFunc type is an adapter to allow the use of an ordinary function for process logging.

func (LogFunc) Log

func (f LogFunc) Log(step *backend.Step, r multipart.Reader) error

Log calls f(proc, r).

type Logger

type Logger interface {
	Log(*backend.Step, multipart.Reader) error
}

Logger handles the process logging.

type OomError

type OomError struct {
	Name string
	Code int
}

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

func (*OomError) Error

func (e *OomError) Error() string

Error reteurns the error message in string format.

type Option

type Option func(*Runtime)

Option configures a runtime option.

func WithContext

func WithContext(ctx context.Context) Option

WithContext returns an option configured with a context.

func WithEngine

func WithEngine(engine backend.Engine) Option

WithEngine returns an option configured with a runtime engine.

func WithLogger

func WithLogger(logger Logger) Option

WithLogger returns an option configured with a runtime logger.

func WithTracer

func WithTracer(tracer Tracer) Option

WithTracer returns an option configured with a runtime tracer.

type Runtime

type Runtime struct {
	// 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) Run

func (r *Runtime) Run() error

Run starts the runtime 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(proc, 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