in pkg/runner/executable_step.go [34:60]
func (s *ExecutableStep) Run(ctx ctx.Context, stepsCtx *StepsContext) (*proto.StepResult, error) {
if err := stepsCtx.Logln("Running step %q", s.loadedFrom.Describe()); err != nil {
return nil, err
}
result := NewStepResultBuilder(s.loadedFrom, s.params, s.specDef)
if err := result.ObserveEnv(stepsCtx.ExpandAndApplyEnv(s.specDef.Env())); err != nil {
return result.BuildFailure(), fmt.Errorf("expand step env: %w", err)
}
if err := result.ObserveExecutedCmd(s.execCommand(ctx, stepsCtx)); err != nil {
return result.BuildFailure(), fmt.Errorf("exec: %w", err)
}
if err := result.ObserveOutputs(s.readOutputs(stepsCtx)); err != nil {
return result.BuildFailure(), fmt.Errorf("output file: %w", err)
}
exports, err := result.ObserveExports(stepsCtx.ReadExportedEnv())
if err != nil {
return result.BuildFailure(), fmt.Errorf("export file: %w", err)
}
stepsCtx.AddGlobalEnv(exports)
return result.Build(), nil
}