Documentation ¶
Index ¶
Constants ¶
const ( // ActionRunsUsingNode12 for running with node12 ActionRunsUsingNode12 = "node12" // ActionRunsUsingDocker for running with docker ActionRunsUsingDocker = "docker" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Action ¶
type Action struct { Name string `yaml:"name"` Author string `yaml:"author"` Description string `yaml:"description"` Inputs map[string]Input `yaml:"inputs"` Outputs map[string]Output `yaml:"outputs"` Runs struct { Using ActionRunsUsing `yaml:"using"` Env map[string]string `yaml:"env"` Main string `yaml:"main"` Image string `yaml:"image"` Entrypoint []string `yaml:"entrypoint"` Args []string `yaml:"args"` } `yaml:"runs"` Branding struct { Color string `yaml:"color"` Icon string `yaml:"icon"` } `yaml:"branding"` }
Action describes a metadata file for GitHub actions. The metadata filename must be either action.yml or action.yaml. The data in the metadata file defines the inputs, outputs and main entrypoint for your action.
type ActionRunsUsing ¶
type ActionRunsUsing string
ActionRunsUsing is the type of runner for the action
type ContainerSpec ¶
type ContainerSpec struct { Image string `yaml:"image"` Env map[string]string `yaml:"env"` Ports []string `yaml:"ports"` Volumes []string `yaml:"volumes"` Options string `yaml:"options"` Entrypoint string Args string Name string Reuse bool }
ContainerSpec is the specification of the container to use for the job
type Input ¶
type Input struct { Description string `yaml:"description"` Required bool `yaml:"required"` Default string `yaml:"default"` }
Input parameters allow you to specify data that the action expects to use during runtime. GitHub stores input parameters as environment variables. Input ids with uppercase letters are converted to lowercase during runtime. We recommended using lowercase input ids.
type Job ¶
type Job struct { Name string `yaml:"name"` RawNeeds yaml.Node `yaml:"needs"` RunsOn string `yaml:"runs-on"` Env map[string]string `yaml:"env"` If string `yaml:"if"` Steps []*Step `yaml:"steps"` TimeoutMinutes int64 `yaml:"timeout-minutes"` Services map[string]*ContainerSpec `yaml:"services"` Strategy *Strategy `yaml:"strategy"` RawContainer yaml.Node `yaml:"container"` }
Job is the structure of one job in a workflow
func (*Job) GetMatrixes ¶ added in v0.2.2
GetMatrixes returns the matrix cross product
type Output ¶
type Output struct {
Description string `yaml:"description"`
}
Output parameters allow you to declare data that an action sets. Actions that run later in a workflow can use the output data set in previously run actions. For example, if you had an action that performed the addition of two inputs (x + y = z), the action could output the sum (z) for other actions to use as an input.
type Plan ¶
type Plan struct {
Stages []*Stage
}
Plan contains a list of stages to run in series
func (*Plan) MaxRunNameLen ¶
MaxRunNameLen determines the max name length of all jobs
type Step ¶
type Step struct { ID string `yaml:"id"` If string `yaml:"if"` Name string `yaml:"name"` Uses string `yaml:"uses"` Run string `yaml:"run"` WorkingDirectory string `yaml:"working-directory"` Shell string `yaml:"shell"` Env map[string]string `yaml:"env"` With map[string]string `yaml:"with"` ContinueOnError bool `yaml:"continue-on-error"` TimeoutMinutes int64 `yaml:"timeout-minutes"` }
Step is the structure of one step in a job
func (*Step) ShellCommand ¶ added in v0.2.2
ShellCommand returns the command for the shell
type StepType ¶
type StepType int
StepType describes what type of step we are about to run
const ( // StepTypeRun is all steps that have a `run` attribute StepTypeRun StepType = iota //StepTypeUsesDockerURL is all steps that have a `uses` that is of the form `docker://...` StepTypeUsesDockerURL //StepTypeUsesActionLocal is all steps that have a `uses` that is a reference to a github repo StepTypeUsesActionLocal //StepTypeUsesActionRemote is all steps that have a `uses` that is a local action in a subdirectory StepTypeUsesActionRemote )
type Strategy ¶
type Strategy struct { FailFast bool `yaml:"fail-fast"` MaxParallel int `yaml:"max-parallel"` Matrix map[string][]interface{} `yaml:"matrix"` }
Strategy for the job
type Workflow ¶
type Workflow struct { Name string `yaml:"name"` RawOn yaml.Node `yaml:"on"` Env map[string]string `yaml:"env"` Jobs map[string]*Job `yaml:"jobs"` }
Workflow is the structure of the files in .github/workflows
func ReadWorkflow ¶
ReadWorkflow returns a list of jobs for a given workflow file reader
type WorkflowPlanner ¶
type WorkflowPlanner interface { PlanEvent(eventName string) *Plan PlanJob(jobName string) *Plan GetEvents() []string }
WorkflowPlanner contains methods for creating plans
func NewWorkflowPlanner ¶
func NewWorkflowPlanner(dirname string) (WorkflowPlanner, error)
NewWorkflowPlanner will load all workflows from a directory