runner

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2025 License: MIT Imports: 33 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
	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
	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.
}

Config contains the config for a new runner

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
	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(ctx context.Context) ([]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) 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