in pkg/api/service/service.go [107:127]
func (s *StepRunnerService) loadSteps(stepsStr string, request *proto.RunRequest) (*runner.SpecDefinition, error) {
spec, step, err := schema.ReadSteps(stepsStr)
if err != nil {
return nil, fmt.Errorf("reading steps %q: %w", stepsStr, err)
}
protoSpec, err := spec.Compile()
if err != nil {
return nil, fmt.Errorf("compiling steps: %w", err)
}
protoDef, err := step.Compile()
if err != nil {
return nil, fmt.Errorf("compiling steps: %w", err)
}
dir := request.WorkDir
if request.Job != nil && request.Job.BuildDir != "" {
dir = request.Job.BuildDir
}
return runner.NewSpecDefinition(protoSpec, protoDef, dir), nil
}