Documentation
¶
Overview ¶
Package runtime holds code for actually running commands vs. preparing and constructing.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetPlanFilename ¶ added in v0.4.1
GetPlanFilename returns the filename (not the path) of the generated tf plan given a workspace and maybe a project's config.
func MustConstraint ¶
func MustConstraint(constraint string) version.Constraints
MustConstraint returns a constraint. It panics on error.
Types ¶
type ApplyStepRunner ¶
type ApplyStepRunner struct {
TerraformExecutor TerraformExec
CommitStatusUpdater StatusUpdater
AsyncTFExec AsyncTFExec
}
ApplyStepRunner runs `terraform apply`.
func (*ApplyStepRunner) Run ¶
func (a *ApplyStepRunner) Run(ctx models.ProjectCommandContext, extraArgs []string, path string) (string, error)
type AsyncTFExec ¶ added in v0.5.0
type AsyncTFExec interface {
// RunCommandAsync runs terraform with args. It immediately returns an
// input and output channel. Callers can use the output channel to
// get the realtime output from the command.
// Callers can use the input channel to pass stdin input to the command.
// If any error is passed on the out channel, there will be no
// further output (so callers are free to exit).
RunCommandAsync(log *logging.SimpleLogger, path string, args []string, v *version.Version, workspace string) (chan<- string, <-chan terraform.Line)
}
AsyncTFExec brings the interface from TerraformClient into this package without causing circular imports. It's split from TerraformExec because due to a bug in pegomock with channels, we can't generate a mock for it so we hand-write it for this specific method.
type InitStepRunner ¶
type InitStepRunner struct {
TerraformExecutor TerraformExec
DefaultTFVersion *version.Version
}
InitStep runs `terraform init`.
func (*InitStepRunner) Run ¶
func (i *InitStepRunner) Run(ctx models.ProjectCommandContext, extraArgs []string, path string) (string, error)
type PlanStepRunner ¶
type PlanStepRunner struct {
TerraformExecutor TerraformExec
DefaultTFVersion *version.Version
CommitStatusUpdater StatusUpdater
AsyncTFExec AsyncTFExec
}
func (*PlanStepRunner) Run ¶
func (p *PlanStepRunner) Run(ctx models.ProjectCommandContext, extraArgs []string, path string) (string, error)
type PullApprovedChecker ¶
type RunStepRunner ¶
RunStepRunner runs custom commands.
func (*RunStepRunner) Run ¶
func (r *RunStepRunner) Run(ctx models.ProjectCommandContext, command []string, path string) (string, error)
type StatusUpdater ¶ added in v0.5.0
type StatusUpdater interface {
UpdateProject(ctx models.ProjectCommandContext, cmdName models.CommandName, status models.CommitStatus, url string) error
}
StatusUpdater brings the interface from CommitStatusUpdater into this package without causing circular imports.