runner

package
v0.246.3 Latest Latest
Warning

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

Go to latest
Published: Jul 2, 2023 License: MIT Imports: 34 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ContainerNewContainer = container.NewContainer
)

Functions

func EvalBool

func EvalBool(ctx context.Context, evaluator ExpressionEvaluator, expr string, defaultStatusCheck exprparser.DefaultStatusCheck) (bool, error)

EvalBool evaluates an expression against given evaluator

func Masks

func Masks(ctx context.Context) *[]string

Logger returns the appropriate logger for current context

func WithCompositeLogger

func WithCompositeLogger(ctx context.Context, masks *[]string) context.Context

func WithCompositeStepLogger

func WithCompositeStepLogger(ctx context.Context, stepID string) context.Context

func WithJobLogger

func WithJobLogger(ctx context.Context, jobID string, jobName string, config *Config, masks *[]string, matrix map[string]interface{}) context.Context

WithJobLogger attaches a new logger to context that is aware of steps

func WithJobLoggerFactory

func WithJobLoggerFactory(ctx context.Context, factory JobLoggerFactory) context.Context

func WithMasks

func WithMasks(ctx context.Context, masks *[]string) context.Context

WithLogger adds a value to the context for the logger

Types

type Config

type Config struct {
	Actor                              string                     // the user that triggered the event
	Workdir                            string                     // path to working directory
	ActionCacheDir                     string                     // path used for caching action contents
	BindWorkdir                        bool                       // bind the workdir to the job container
	EventName                          string                     // name of event to run
	EventPath                          string                     // path to JSON file to use for event.json in containers
	DefaultBranch                      string                     // name of the main branch for this repository
	ReuseContainers                    bool                       // reuse containers to maintain state
	ForcePull                          bool                       // force pulling of the image, even if already present
	ForceRebuild                       bool                       // force rebuilding local docker image action
	LogOutput                          bool                       // log the output from docker run
	JSONLogger                         bool                       // use json or text logger
	Env                                map[string]string          // env for containers
	Inputs                             map[string]string          // manually passed action inputs
	Secrets                            map[string]string          // list of secrets
	Vars                               map[string]string          // list of vars
	Token                              string                     // GitHub token
	InsecureSecrets                    bool                       // switch hiding output when printing to terminal
	Platforms                          map[string]string          // list of platforms
	Privileged                         bool                       // use privileged mode
	UsernsMode                         string                     // user namespace to use
	ContainerArchitecture              string                     // Desired OS/architecture platform for running containers
	ContainerDaemonSocket              string                     // Path to Docker daemon socket
	ContainerOptions                   string                     // Options for the job container
	UseGitIgnore                       bool                       // controls if paths in .gitignore should not be copied into container, default true
	GitHubInstance                     string                     // GitHub instance to use, default "github.com"
	ContainerCapAdd                    []string                   // list of kernel capabilities to add to the containers
	ContainerCapDrop                   []string                   // list of kernel capabilities to remove from the containers
	AutoRemove                         bool                       // controls if the container is automatically removed upon workflow completion
	ArtifactServerPath                 string                     // the path where the artifact server stores uploads
	ArtifactServerAddr                 string                     // the address the artifact server binds to
	ArtifactServerPort                 string                     // the port the artifact server binds to
	NoSkipCheckout                     bool                       // do not skip actions/checkout
	RemoteName                         string                     // remote name in local git repo config
	ReplaceGheActionWithGithubCom      []string                   // Use actions from GitHub Enterprise instance to GitHub
	ReplaceGheActionTokenWithGithubCom string                     // Token of private action repo on GitHub.
	Matrix                             map[string]map[string]bool // Matrix config to run

	PresetGitHubContext   *model.GithubContext         // the preset github context, overrides some fields like DefaultBranch, Env, Secrets etc.
	EventJSON             string                       // the content of JSON file to use for event.json in containers, overrides EventPath
	ContainerNamePrefix   string                       // the prefix of container name
	ContainerMaxLifetime  time.Duration                // the max lifetime of job containers
	ContainerNetworkMode  docker_container.NetworkMode // the network mode of job containers (the value of --network)
	DefaultActionInstance string                       // the default actions web site
	PlatformPicker        func(labels []string) string // platform picker, it will take precedence over Platforms if isn't nil
	JobLoggerLevel        *log.Level                   // the level of job logger
	ValidVolumes          []string                     // only volumes (and bind mounts) in this slice can be mounted on the job container or service containers
}

Config contains the config for a new runner

func (Config) GetToken

func (c Config) GetToken() string

GetToken: Adapt to Gitea

type ExpressionEvaluator

type ExpressionEvaluator interface {
	EvaluateYamlNode(context.Context, *yaml.Node) error
	Interpolate(context.Context, string) string
	// contains filtered or unexported methods
}

ExpressionEvaluator is the interface for evaluating expressions

type JobLoggerFactory

type JobLoggerFactory interface {
	WithJobLogger() *logrus.Logger
}

type MappableOutput

type MappableOutput struct {
	StepID     string
	OutputName string
}

type RunContext

type RunContext struct {
	Name              string
	Config            *Config
	Matrix            map[string]interface{}
	Run               *model.Run
	EventJSON         string
	Env               map[string]string
	GlobalEnv         map[string]string // to pass env changes of GITHUB_ENV and set-env correctly, due to dirty Env field
	ExtraPath         []string
	CurrentStep       string
	StepResults       map[string]*model.StepResult
	IntraActionState  map[string]map[string]string
	ExprEval          ExpressionEvaluator
	JobContainer      container.ExecutionsEnvironment
	ServiceContainers []container.ExecutionsEnvironment
	OutputMappings    map[MappableOutput]MappableOutput
	JobName           string
	ActionPath        string
	Parent            *RunContext
	Masks             []string
	// contains filtered or unexported fields
}

RunContext contains info about current job

func (*RunContext) ActionCacheDir

func (rc *RunContext) ActionCacheDir() string

ActionCacheDir is for rc

func (*RunContext) AddMask

func (rc *RunContext) AddMask(mask string)

func (*RunContext) ApplyExtraPath

func (rc *RunContext) ApplyExtraPath(ctx context.Context, env *map[string]string)

func (*RunContext) Executor

func (rc *RunContext) Executor() common.Executor

Executor returns a pipeline executor for all the steps in the job

func (*RunContext) GetBindsAndMounts

func (rc *RunContext) GetBindsAndMounts() ([]string, map[string]string)

Returns the binds and mounts for the container, resolving paths as appopriate

func (*RunContext) GetEnv

func (rc *RunContext) GetEnv() map[string]string

GetEnv returns the env for the context

func (*RunContext) GetServiceBindsAndMounts

func (rc *RunContext) GetServiceBindsAndMounts(svcVolumes []string) ([]string, map[string]string)

GetServiceBindsAndMounts returns the binds and mounts for the service container, resolving paths as appopriate

func (*RunContext) IsHostEnv

func (rc *RunContext) IsHostEnv(ctx context.Context) bool

func (*RunContext) NewExpressionEvaluator

func (rc *RunContext) NewExpressionEvaluator(ctx context.Context) ExpressionEvaluator

NewExpressionEvaluator creates a new evaluator

func (*RunContext) NewExpressionEvaluatorWithEnv

func (rc *RunContext) NewExpressionEvaluatorWithEnv(ctx context.Context, env map[string]string) ExpressionEvaluator

func (*RunContext) NewStepExpressionEvaluator

func (rc *RunContext) NewStepExpressionEvaluator(ctx context.Context, step step) ExpressionEvaluator

NewExpressionEvaluator creates a new evaluator

func (*RunContext) String

func (rc *RunContext) String() string

func (*RunContext) UpdateExtraPath

func (rc *RunContext) UpdateExtraPath(ctx context.Context, githubEnvPath string) error

type Runner

type Runner interface {
	NewPlanExecutor(plan *model.Plan) common.Executor
}

Runner provides capabilities to run GitHub actions

func New

func New(runnerConfig *Config) (Runner, error)

New Creates a new Runner

func NewReusableWorkflowRunner

func NewReusableWorkflowRunner(rc *RunContext) (Runner, error)

Jump to

Keyboard shortcuts

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