Documentation
¶
Index ¶
- Variables
- func EvalBool(ctx context.Context, evaluator ExpressionEvaluator, expr string, ...) (bool, error)
- func Masks(ctx context.Context) *[]string
- func WithCompositeLogger(ctx context.Context, masks *[]string) context.Context
- func WithCompositeStepLogger(ctx context.Context, stepID string) context.Context
- func WithJobLogger(ctx context.Context, jobID string, jobName string, config *Config, ...) context.Context
- func WithJobLoggerFactory(ctx context.Context, factory JobLoggerFactory) context.Context
- func WithMasks(ctx context.Context, masks *[]string) context.Context
- type ActionCache
- type Config
- type ExpressionEvaluator
- type GitFileInfo
- type GoGitActionCache
- type GoGitActionCacheOfflineMode
- type JobLoggerFactory
- type LocalRepositoryCache
- type MappableOutput
- type RunContext
- func (rc *RunContext) ActionCacheDir() string
- func (rc *RunContext) AddMask(mask string)
- func (rc *RunContext) ApplyExtraPath(ctx context.Context, env *map[string]string)
- func (rc *RunContext) Executor() (common.Executor, error)
- func (rc *RunContext) GetBindsAndMounts() ([]string, map[string]string)
- func (rc *RunContext) GetEnv() map[string]string
- func (rc *RunContext) GetNodeToolFullPath(ctx context.Context) string
- func (rc *RunContext) GetServiceBindsAndMounts(svcVolumes []string) ([]string, map[string]string)
- func (rc *RunContext) InitializeNodeTool() common.Executor
- func (rc *RunContext) IsHostEnv(ctx context.Context) bool
- func (rc *RunContext) IsTartEnv(ctx context.Context) bool
- func (rc *RunContext) NewExpressionEvaluator(ctx context.Context) ExpressionEvaluator
- func (rc *RunContext) NewExpressionEvaluatorWithEnv(ctx context.Context, env map[string]string) ExpressionEvaluator
- func (rc *RunContext) NewStepExpressionEvaluator(ctx context.Context, step step) ExpressionEvaluator
- func (rc *RunContext) NewStepExpressionEvaluatorExt(ctx context.Context, step step, rcInputs bool) ExpressionEvaluator
- func (rc *RunContext) String() string
- func (rc *RunContext) UpdateExtraPath(ctx context.Context, githubEnvPath string) error
- type Runner
Constants ¶
This section is empty.
Variables ¶
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 WithCompositeLogger ¶
func WithCompositeStepLogger ¶
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
Types ¶
type ActionCache ¶
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
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
ContainerNetworkMode docker_container.NetworkMode // the network mode of job containers (the value of --network)
ActionCache ActionCache // Use a custom ActionCache Implementation
}
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 GitFileInfo ¶
type GitFileInfo struct {
// contains filtered or unexported fields
}
func (*GitFileInfo) ModTime ¶
func (g *GitFileInfo) ModTime() time.Time
ModTime implements fs.FileInfo.
type GoGitActionCache ¶
type GoGitActionCache struct {
Path string
}
func (GoGitActionCache) GetTarArchive ¶
func (c GoGitActionCache) GetTarArchive(ctx context.Context, cacheDir, sha, includePrefix string) (io.ReadCloser, error)
type GoGitActionCacheOfflineMode ¶
type GoGitActionCacheOfflineMode struct {
Parent GoGitActionCache
}
func (GoGitActionCacheOfflineMode) GetTarArchive ¶
func (c GoGitActionCacheOfflineMode) GetTarArchive(ctx context.Context, cacheDir, sha, includePrefix string) (io.ReadCloser, error)
type JobLoggerFactory ¶
type LocalRepositoryCache ¶
type LocalRepositoryCache struct {
Parent ActionCache
LocalRepositories map[string]string
CacheDirCache map[string]string
}
func (*LocalRepositoryCache) GetTarArchive ¶
func (l *LocalRepositoryCache) GetTarArchive(ctx context.Context, cacheDir, sha, includePrefix string) (io.ReadCloser, error)
type MappableOutput ¶
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, error)
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 appropriate
func (*RunContext) GetEnv ¶
func (rc *RunContext) GetEnv() map[string]string
GetEnv returns the env for the context
func (*RunContext) GetNodeToolFullPath ¶
func (rc *RunContext) GetNodeToolFullPath(ctx context.Context) 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 appropriate
func (*RunContext) InitializeNodeTool ¶
func (rc *RunContext) InitializeNodeTool() common.Executor
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 ¶
Runner provides capabilities to run GitHub actions
func NewReusableWorkflowRunner ¶
func NewReusableWorkflowRunner(rc *RunContext) (Runner, error)