pipeline

package
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Nov 9, 2023 License: Apache-2.0 Imports: 25 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_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)

	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_PIPELINE_STATUS"] = "failure"
		state.Pipeline.Step.Environment["CI_STEP_STATUS"] = "failure"

		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: find either a new home or better name for this.

Functions

func SanitizePath

func SanitizePath(path string) string

func SetPipelineStepsOnPipeline

func SetPipelineStepsOnPipeline(pipeline *model.Pipeline, pipelineItems []*Item) *model.Pipeline

SetPipelineStepsOnPipeline is the link between pipeline representation in "pipeline package" and server to be specific this func currently is used to convert the pipeline.Item list (crafted by StepBuilder.Build()) into a pipeline that can be stored in the database by the server

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 Item

type Item struct {
	Workflow  *model.Workflow
	Platform  string
	Labels    map[string]string
	DependsOn []string
	RunsOn    []string
	Config    *backend_types.Config
}

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(step, 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 returns 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 WithDescription

func WithDescription(desc map[string]string) Option

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 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

Starts the execution of an 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 StepBuilder

type StepBuilder struct {
	Repo  *model.Repo
	Curr  *model.Pipeline
	Last  *model.Pipeline
	Netrc *model.Netrc
	Secs  []*model.Secret
	Regs  []*model.Registry
	Link  string
	Yamls []*forge_types.FileMeta
	Envs  map[string]string
	Forge metadata.ServerForge
}

StepBuilder Takes the hook data and the yaml and returns in internal data model

func (*StepBuilder) Build

func (b *StepBuilder) Build() ([]*Item, error)

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