runner

package
v12.6.0 Latest Latest
Warning

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

Go to latest
Published: Jan 22, 2026 License: GPL-3.0 Imports: 39 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 GetOuterStepResult

func GetOuterStepResult(entry *logrus.Entry) any

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, jobName string, config *Config, masks *[]string, matrix map[string]any) 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

WithMasks 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
	ActionOfflineMode                  bool                         // when offline, use 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
	LogPrefixJobID                     bool                         // switches from the full job name to the job id
	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
	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
	ContainerNetworkMode               docker_container.NetworkMode // the network mode of job containers (the value of --network)

	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
	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
	InsecureSkipTLS       bool                         // whether to skip verifying TLS certificate of the Gitea instance

	ContainerNetworkEnableIPv6 bool   // create the network with IPv6 support enabled
	ServerVersion              string // Git forge server version
}

Config contains the config for a new runner

func (*Config) GetContainerDaemonSocket

func (c *Config) GetContainerDaemonSocket() string

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]any
	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, error)

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, []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) GetLXCInfo

func (rc *RunContext) GetLXCInfo(ctx context.Context) (isLXC bool, template, release, config string)

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

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

func (*RunContext) IsHostEnv

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

func (*RunContext) IsLXCHostEnv

func (rc *RunContext) IsLXCHostEnv(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

NewStepExpressionEvaluator creates a new evaluator

func (*RunContext) NewStepExpressionEvaluatorExt

func (rc *RunContext) NewStepExpressionEvaluatorExt(ctx context.Context, step step, rcInputs bool) ExpressionEvaluator

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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