Documentation
¶
Overview ¶
Package debugger implements the pause/resume layer on top of the Docker executor: after every step it shows the step's result and asks the user whether the pipeline should continue or abort, and on failure it can drop the user into an interactive shell in the same container.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Interactive ¶
type Interactive struct {
// StepByStep pauses after every step (not just failed ones) and asks
// the user to continue or abort.
StepByStep bool
// ShellOnFail automatically drops the user into an interactive shell
// in the step's container whenever the step fails.
ShellOnFail bool
// contains filtered or unexported fields
}
Interactive is an executor.StepController that prompts a human on in/out after every step.
func NewInteractive ¶
func NewInteractive(in io.Reader, out io.Writer) *Interactive
NewInteractive builds an Interactive controller reading prompts from in and writing them to out — typically os.Stdin and os.Stdout. Both StepByStep and ShellOnFail default to false; set them on the returned value before use.
func (*Interactive) AfterStep ¶
func (i *Interactive) AfterStep(ctx context.Context, jobName string, step pipeline.Step, exitCode int64, stepErr error, shell executor.ShellFunc) executor.Decision
AfterStep implements executor.StepController. The result of the step was already logged by the executor's Logger just before this is called; here we only need to react to a failure and/or prompt for the next move.