func()

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
}