Skip to content
Snippets Groups Projects
Commit 19b9985a authored by Kamil Trzciński's avatar Kamil Trzciński :speech_balloon:
Browse files

Update `runner.go`

parent 13514695
No related branches found
No related tags found
2 merge requests!2Initial implementation v2,!1Initial implementation
package context
import (
"io"
"os"
"google.golang.org/protobuf/types/known/structpb"
)
type Global struct {
Job map[string]string
Env map[string]string
Stdout io.Writer
Stderr io.Writer
}
func NewGlobal() *Global {
return &Global{
Job: map[string]string{},
Env: map[string]string{},
Stdout: os.Stdout,
Stderr: os.Stderr,
}
}
type Steps struct {
Global *Global
Dir string
Env map[string]string
Inputs map[string]*structpb.Value
Outputs map[string]map[string]string
}
func NewSteps() *Steps {
return &Steps{
Env: map[string]string{},
Inputs: map[string]*structpb.Value{},
Outputs: map[string]map[string]string{},
}
}
......
......@@ -11,13 +11,13 @@ import (
"gitlab.com/gitlab-org/step-runner/proto"
)
func InterpolateString(globalCtx *context.Global, stepsCtx *context.Steps, value string) string {
matches := merge(globalMatches(globalCtx), outputMatches(stepsCtx))
func InterpolateString(stepsCtx *context.Steps, value string) string {
matches := merge(globalMatches(stepsCtx.Global), outputMatches(stepsCtx))
return replaceAll(structpb.NewStringValue(value), matches).GetStringValue()
}
func InterpolateProtoValue(globalCtx *context.Global, stepsCtx *context.Steps, value *structpb.Value) *structpb.Value {
matches := merge(globalMatches(globalCtx), outputMatches(stepsCtx))
func InterpolateProtoValue(stepsCtx *context.Steps, value *structpb.Value) *structpb.Value {
matches := merge(globalMatches(stepsCtx.Global), outputMatches(stepsCtx))
return replaceAll(value, matches)
}
......
......@@ -6,6 +6,7 @@ import (
"path/filepath"
"github.com/joho/godotenv"
"gitlab.com/gitlab-org/step-runner/pkg/context"
"gitlab.com/gitlab-org/step-runner/proto"
)
......@@ -18,13 +19,13 @@ const (
)
type Files struct {
step *proto.Step
stepCtx *context.Steps
dir string
outputFile string
exportFile string
}
func New(step *proto.Step) (*Files, error) {
func New(stepCtx *context.Steps) (*Files, error) {
dir, err := os.MkdirTemp("", "step-runner-output-*")
if err != nil {
return nil, fmt.Errorf("making output directoy: %w", err)
......@@ -39,25 +40,21 @@ func New(step *proto.Step) (*Files, error) {
if err != nil {
return nil, fmt.Errorf("creating export file: %w", err)
}
if step.Env == nil {
step.Env = map[string]string{}
}
step.Env[outputFileKey] = outputFile
step.Env[exportFileKey] = exportFile
stepCtx.Env[outputFileKey] = outputFile
stepCtx.Env[exportFileKey] = exportFile
return &Files{
step: step,
stepCtx: stepCtx,
dir: dir,
outputFile: outputFile,
exportFile: exportFile,
}, nil
}
func (f *Files) OutputTo(stepCtx *context.Steps, result *proto.StepResult) error {
func (f *Files) OutputTo(result *proto.StepResult) error {
outputs, err := godotenv.Read(f.outputFile)
if err != nil {
return fmt.Errorf("reading outputs: %w", err)
}
stepCtx.Outputs[f.step.Name] = outputs
result.Outputs = outputs
return nil
}
......@@ -74,12 +71,6 @@ func (f *Files) ExportTo(globalCtx *context.Global, result *proto.StepResult) er
return nil
}
func (f *Files) Cleanup(result *proto.StepResult) {
delete(f.step.Env, outputFileKey)
delete(f.step.Env, exportFileKey)
if result != nil {
delete(result.Step.Env, outputFileKey)
delete(result.Step.Env, exportFileKey)
}
func (f *Files) Cleanup() {
os.RemoveAll(f.dir)
}
......@@ -4,7 +4,8 @@ import (
ctx "context"
"fmt"
"os/exec"
"strings"
"google.golang.org/protobuf/types/known/structpb"
"gitlab.com/gitlab-org/step-runner/pkg/cache"
"gitlab.com/gitlab-org/step-runner/pkg/context"
......@@ -14,144 +15,176 @@ import (
)
type Execution struct {
ctx ctx.Context
defs *cache.Definitions
globalCtx *context.Global
stepsCtx *context.Steps
steps []*proto.Step
}
func New(ctx ctx.Context, defs *cache.Definitions, globalCtx *context.Global, steps []*proto.Step) (*Execution, error) {
func New(defs *cache.Definitions) (*Execution, error) {
return &Execution{
ctx: ctx,
defs: defs,
globalCtx: globalCtx,
stepsCtx: context.NewSteps(),
steps: steps,
}, nil
}
type Return func(*proto.StepResult, string)
func (e *Execution) Run(fn Return) error {
return e.run(e.stepsCtx, e.steps, fn)
}
func (e *Execution) createContext(specDefinition *proto.StepDefinition, stepCall *proto.StepCall, globalCtx *context.Global) (*context.Steps, error) {
stepsCtx := context.NewSteps()
stepsCtx.Global = globalCtx
stepsCtx.Env = stepCall.Env
stepsCtx.Dir = specDefinition.Dir
func (e *Execution) run(stepsCtx *context.Steps, steps []*proto.Step, trace Return) error {
for _, s := range steps {
if err := e.ctx.Err(); err != nil {
return fmt.Errorf("run cancelled: %w", err)
}
err := expression.InterpolateInputs(e.globalCtx, e.stepsCtx, s)
if err != nil {
return fmt.Errorf("interpolating step %q: %w", s.Name, err)
}
spec, def, dir, err := e.defs.Get(e.ctx, s.Step)
if err != nil {
return fmt.Errorf("getting step %q definition: %w", s.Name, err)
}
switch def.Type {
case proto.DefinitionType_exec:
err = expression.InterpolateExec(e.globalCtx, s.Inputs, spec.Spec, def.Exec)
if err != nil {
return fmt.Errorf("interpolating definition of step %q: %w", s.Name, err)
}
files, err := output.New(s)
if err != nil {
return err
}
var (
result *proto.StepResult
log string
)
err = func() error {
defer files.Cleanup(result)
result, log, err = e.runExec(s, spec, def, dir)
if err != nil {
return fmt.Errorf("running step %q: %w", s.Name, err)
}
err = files.OutputTo(stepsCtx, result)
if err != nil {
return fmt.Errorf("outputting: %w", err)
}
err = files.ExportTo(e.globalCtx, result)
if err != nil {
return fmt.Errorf("exporting: %w", err)
}
return nil
}()
if err != nil {
return err
}
trace(result, log)
case proto.DefinitionType_steps:
result, log, err := e.runSteps(s, spec, def)
if err != nil {
return fmt.Errorf("running step %q: %w", s.Name, err)
// Match inputs with definition
for key, value := range specDefinition.Spec.Spec.Inputs {
callValue := stepCall.Inputs[key]
if value.Default == nil {
if callValue == nil {
return nil, fmt.Errorf("input %q required, but not defined", key)
}
trace(result, string(log))
default:
return fmt.Errorf("unsupported type: %v", def.Type)
stepsCtx.Inputs[key] = callValue
} else {
stepsCtx.Inputs[key] = value.Default
}
}
return nil
// Reject invalid inputs
for key, _ := range stepCall.Inputs {
defValue := specDefinition.Spec.Spec.Inputs[key]
if defValue == nil {
return nil, fmt.Errorf("input %q not found", key)
}
}
return stepsCtx, nil
}
func (e *Execution) runExec(s *proto.Step, spec *proto.Spec, def *proto.Definition, dir string) (*proto.StepResult, string, error) {
if err := e.ctx.Err(); err != nil {
return nil, "", fmt.Errorf("exec cancelled: %w", err)
func (e *Execution) Run(ctx ctx.Context, specDefinition *proto.StepDefinition, stepCall *proto.StepCall, globalCtx *context.Global) (*proto.StepResult, error) {
stepsCtx, err := e.createContext(specDefinition, stepCall, globalCtx)
if err != nil {
return nil, err
}
cmd := exec.Command(def.Exec.Command[0], def.Exec.Command[1:]...)
cmd.Dir = dir
// Only explicitly provided environment variables
cmd.Env = []string{}
for k, v := range s.Env {
cmd.Env = append(cmd.Env, k+"="+v)
var result *proto.StepResult
switch specDefinition.Definition.Type {
case proto.DefinitionType_exec:
result, err = e.runExec(ctx, specDefinition.Definition.Exec, stepsCtx)
case proto.DefinitionType_steps:
result, err = e.runSteps(ctx, specDefinition.Definition.Steps, stepsCtx)
default:
err = fmt.Errorf("invalid type: %q", specDefinition.Definition.Type)
}
if result != nil {
result.StepDefinition = specDefinition
}
return result, err
}
func (e *Execution) runExec(ctx ctx.Context, execDefinition *proto.Definition_Exec, stepsCtx *context.Steps) (*proto.StepResult, error) {
if err := ctx.Err(); err != nil {
return nil, fmt.Errorf("exec cancelled: %w", err)
}
files, err := output.New(stepsCtx)
if err != nil {
return nil, err
}
defer files.Cleanup()
cmdArgs := []string{}
for _, arg := range execDefinition.Command {
expandedArg := expression.InterpolateString(stepsCtx, arg)
cmdArgs = append(cmdArgs, expandedArg)
}
for k, v := range e.globalCtx.Env {
cmd.Env = append(cmd.Env, k+"="+v)
cmd := exec.Command(cmdArgs[0], cmdArgs[1:]...)
if execDefinition.WorkDir != "" {
cmd.Dir = expression.InterpolateString(stepsCtx, execDefinition.WorkDir)
} else {
cmd.Dir = stepsCtx.Dir
}
log, err := cmd.CombinedOutput()
// Only explicitly provided environment variables
cmd.Env = stepsCtx.GetEnvList()
// TODO: Use multi-writer
cmd.Stdout = stepsCtx.Global.Stdout
cmd.Stderr = stepsCtx.Global.Stderr
err = cmd.Run()
if err != nil {
return nil, "", fmt.Errorf("exec: %w: %v", err, string(log))
return nil, fmt.Errorf("exec: %w", err)
}
exitCode := cmd.ProcessState.ExitCode()
status := proto.StepResult_failure
if exitCode == 0 {
status = proto.StepResult_success
}
return &proto.StepResult{
Step: s,
Spec: spec,
Def: def,
result := &proto.StepResult{
Status: status,
ExitCode: int32(exitCode),
}, string(log), nil
}
err = files.OutputTo(result)
if err != nil {
return nil, fmt.Errorf("outputting: %w", err)
}
err = files.ExportTo(stepsCtx.Global, result)
if err != nil {
return nil, fmt.Errorf("exporting: %w", err)
}
return result, nil
}
func (e *Execution) runSteps(s *proto.Step, spec *proto.Spec, def *proto.Definition) (*proto.StepResult, string, error) {
if err := e.ctx.Err(); err != nil {
return nil, "", fmt.Errorf("steps cancelled: %w", err)
func (e *Execution) runSteps(ctx ctx.Context, stepsDefinition []*proto.Step, stepsCtx *context.Steps) (*proto.StepResult, error) {
result := &proto.StepResult{}
for _, step := range stepsDefinition {
stepResult, err := e.runStep(ctx, step, stepsCtx)
if err != nil {
return nil, err
}
result.ChildrenStepResults = append(result.ChildrenStepResults, stepResult)
}
var log strings.Builder
result := &proto.StepResult{
Step: s,
Spec: spec,
Def: def,
return result, nil
}
func (e *Execution) runStep(ctx ctx.Context, stepReference *proto.Step, stepsCtx *context.Steps) (*proto.StepResult, error) {
stepCall := &proto.StepCall{}
// Expand inputs
stepCall.Inputs = make(map[string]*structpb.Value)
for k, v := range stepReference.Inputs {
stepCall.Inputs[k] = expression.InterpolateProtoValue(stepsCtx, v)
}
fn := func(child *proto.StepResult, childLog string) {
result.ChildrenStepResults = append(result.ChildrenStepResults, child)
log.WriteString(childLog)
// Clone and expand env
stepCall.Env = make(map[string]string)
for k, v := range stepsCtx.Env {
stepCall.Env[k] = v
}
stepsCtx := context.NewSteps()
err := e.run(stepsCtx, def.Steps, fn)
for k, v := range stepReference.Env {
stepCall.Env[k] = expression.InterpolateString(stepsCtx, v)
}
spec, def, dir, err := e.defs.Get(ctx, stepReference.Step)
if err != nil {
return nil, "", fmt.Errorf("steps: %w", err)
return nil, fmt.Errorf("getting step %q definition: %w", stepReference.Name, err)
}
result.Outputs, err = expression.InterpolateOutputs(e.globalCtx, stepsCtx, spec.Spec, def)
// TODO: The `defs.Get` should return `proto.StepDefinition`
stepDef := &proto.StepDefinition{
Spec: spec,
Definition: def,
Dir: dir,
}
result, err := e.Run(ctx, stepDef, stepCall, stepsCtx.Global)
if err != nil {
return nil, "", fmt.Errorf("interpolating output: %w", err)
return nil, err
}
e.stepsCtx.Outputs[s.Name] = result.Outputs
return result, log.String(), nil
result.Step = stepReference
stepsCtx.Outputs[stepReference.Name] = result.Outputs
return result, nil
}
......@@ -4,6 +4,7 @@ import (
ctx "context"
"os"
"testing"
"bytes"
"github.com/stretchr/testify/require"
"gitlab.com/gitlab-org/step-runner/pkg/cache"
......@@ -141,30 +142,38 @@ meet joe who is 42 likes {"characters":["sponge bob","patrick star"]} and is hun
t.Run(c.name, func(t *testing.T) {
def, err := step.ReadSteps(c.yaml)
require.NoError(t, err)
defs, err := cache.New()
require.NoError(t, err)
defer defs.Cleanup()
runner, err := New(defs)
require.NoError(t, err)
var log bytes.Buffer
globalCtx := context.NewGlobal()
globalCtx.Env["HOME"] = os.Getenv("HOME") // for `go run` steps
runner, err := New(ctx.Background(), defs, globalCtx, def.Steps)
require.NoError(t, err)
var (
results []*proto.StepResult
log string
)
fn := func(r *proto.StepResult, l string) {
results = append(results, r)
log += l
globalCtx.Stdout = &log
globalCtx.Stderr = &log
specDefinition := &proto.StepDefinition{
Spec: &proto.Spec{
Spec: &proto.Spec_Content{},
},
Definition: def,
}
err = runner.Run(fn)
stepCall := &proto.StepCall{}
result, err := runner.Run(ctx.Background(), specDefinition, stepCall, globalCtx)
if c.wantErr {
require.Error(t, err)
} else {
require.NoError(t, err)
if c.wantLog != "" {
require.Equal(t, c.wantLog, log)
require.Equal(t, c.wantLog, log.String())
}
c.wantResults(t, results)
c.wantResults(t, result.ChildrenStepResults)
}
})
}
......
......@@ -376,6 +376,7 @@ type StepDefinition struct {
Spec *Spec `protobuf:"bytes,1,opt,name=spec,proto3" json:"spec,omitempty"`
Definition *Definition `protobuf:"bytes,2,opt,name=definition,proto3" json:"definition,omitempty"`
Dir string `protobuf:"bytes,3,opt,name=dir,proto3" json:"dir,omitempty"`
}
func (x *StepDefinition) Reset() {
......@@ -424,13 +425,20 @@ func (x *StepDefinition) GetDefinition() *Definition {
return nil
}
func (x *StepDefinition) GetDir() string {
if x != nil {
return x.Dir
}
return ""
}
type StepCall struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Inputs map[string]*structpb.Value `protobuf:"bytes,1,rep,name=inputs,proto3" json:"inputs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
Envs map[string]string `protobuf:"bytes,2,rep,name=envs,proto3" json:"envs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
Env map[string]string `protobuf:"bytes,2,rep,name=env,proto3" json:"env,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *StepCall) Reset() {
......@@ -472,9 +480,9 @@ func (x *StepCall) GetInputs() map[string]*structpb.Value {
return nil
}
func (x *StepCall) GetEnvs() map[string]string {
func (x *StepCall) GetEnv() map[string]string {
if x != nil {
return x.Envs
return x.Env
}
return nil
}
......@@ -485,8 +493,7 @@ type StepResult struct {
unknownFields protoimpl.UnknownFields
Step *Step `protobuf:"bytes,1,opt,name=step,proto3" json:"step,omitempty"`
Spec *Spec `protobuf:"bytes,2,opt,name=spec,proto3" json:"spec,omitempty"`
Def *Definition `protobuf:"bytes,3,opt,name=def,proto3" json:"def,omitempty"`
StepDefinition *StepDefinition `protobuf:"bytes,2,opt,name=stepDefinition,proto3" json:"stepDefinition,omitempty"`
Status StepResult_Status `protobuf:"varint,4,opt,name=status,proto3,enum=proto.StepResult_Status" json:"status,omitempty"`
Outputs map[string]string `protobuf:"bytes,5,rep,name=outputs,proto3" json:"outputs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
Exports map[string]string `protobuf:"bytes,6,rep,name=exports,proto3" json:"exports,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
......@@ -533,16 +540,9 @@ func (x *StepResult) GetStep() *Step {
return nil
}
func (x *StepResult) GetSpec() *Spec {
func (x *StepResult) GetStepDefinition() *StepDefinition {
if x != nil {
return x.Spec
}
return nil
}
func (x *StepResult) GetDef() *Definition {
if x != nil {
return x.Def
return x.StepDefinition
}
return nil
}
......@@ -867,77 +867,77 @@ var file_step_proto_rawDesc = []byte{
0x6e, 0x74, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x3a, 0x02, 0x38, 0x01, 0x1a, 0x22, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x18,
0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x64, 0x0a, 0x0e, 0x53, 0x74, 0x65, 0x70,
0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x76, 0x0a, 0x0e, 0x53, 0x74, 0x65, 0x70,
0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x04, 0x73, 0x70,
0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x2e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x31, 0x0a, 0x0a, 0x64,
0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69,
0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xfa,
0x01, 0x0a, 0x08, 0x53, 0x74, 0x65, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x33, 0x0a, 0x06, 0x69,
0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x2e, 0x49, 0x6e, 0x70,
0x75, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73,
0x12, 0x2d, 0x0a, 0x04, 0x65, 0x6e, 0x76, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x2e,
0x45, 0x6e, 0x76, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x65, 0x6e, 0x76, 0x73, 0x1a,
0x51, 0x0a, 0x0b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10,
0x0a, 0x03, 0x64, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x72,
0x22, 0xf6, 0x01, 0x0a, 0x08, 0x53, 0x74, 0x65, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x33, 0x0a,
0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x2e, 0x49,
0x6e, 0x70, 0x75, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75,
0x74, 0x73, 0x12, 0x2a, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x43, 0x61, 0x6c, 0x6c,
0x2e, 0x45, 0x6e, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x1a, 0x51,
0x0a, 0x0b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
0x01, 0x1a, 0x36, 0x0a, 0x08, 0x45, 0x6e, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb0, 0x04, 0x0a, 0x0a, 0x53, 0x74,
0x65, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53,
0x74, 0x65, 0x70, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x12, 0x3d, 0x0a, 0x0e, 0x73, 0x74, 0x65,
0x70, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x44, 0x65,
0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x73, 0x74, 0x65, 0x70, 0x44, 0x65,
0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x2e, 0x53, 0x74, 0x65, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74,
0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x75,
0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4f,
0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x75, 0x74,
0x70, 0x75, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18,
0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74,
0x65, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1b,
0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
0x05, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x45, 0x0a, 0x15, 0x63,
0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x72, 0x65, 0x73,
0x75, 0x6c, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x13, 0x63,
0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c,
0x74, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a,
0x0a, 0x0c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x45, 0x6e, 0x76, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb7, 0x04, 0x0a, 0x0a,
0x53, 0x74, 0x65, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x73, 0x74,
0x65, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x2e, 0x53, 0x74, 0x65, 0x70, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x73,
0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x23, 0x0a, 0x03,
0x64, 0x65, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x64, 0x65,
0x66, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x52, 0x65,
0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61,
0x74, 0x75, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x05,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x65,
0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x38, 0x0a,
0x07, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c,
0x74, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07,
0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f,
0x63, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74,
0x43, 0x6f, 0x64, 0x65, 0x12, 0x45, 0x0a, 0x15, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e,
0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x08, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x65, 0x70,
0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x13, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e,
0x53, 0x74, 0x65, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f,
0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x45, 0x78, 0x70, 0x6f, 0x72,
0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
0x02, 0x38, 0x01, 0x22, 0x40, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0f, 0x0a,
0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b,
0x0a, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73,
0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c,
0x75, 0x72, 0x65, 0x10, 0x03, 0x2a, 0x46, 0x0a, 0x0e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74,
0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x64, 0x65, 0x66, 0x69, 0x6e,
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x6e, 0x73, 0x70, 0x65,
0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x78, 0x65, 0x63,
0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, 0x10, 0x02, 0x2a, 0x5e, 0x0a,
0x09, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x73, 0x70,
0x65, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,
0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x10,
0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x02, 0x12, 0x08, 0x0a,
0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63,
0x74, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x10, 0x05, 0x42, 0x0a, 0x5a,
0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x40, 0x0a, 0x06, 0x53, 0x74,
0x61, 0x74, 0x75, 0x73, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,
0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67,
0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12,
0x0b, 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x10, 0x03, 0x2a, 0x46, 0x0a, 0x0e,
0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f,
0x0a, 0x1b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70,
0x65, 0x5f, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12,
0x08, 0x0a, 0x04, 0x65, 0x78, 0x65, 0x63, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x65,
0x70, 0x73, 0x10, 0x02, 0x2a, 0x5e, 0x0a, 0x09, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70,
0x65, 0x12, 0x19, 0x0a, 0x15, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75,
0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06,
0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62,
0x65, 0x72, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x10, 0x03, 0x12, 0x0a,
0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69,
0x73, 0x74, 0x10, 0x05, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
......@@ -974,7 +974,7 @@ var file_step_proto_goTypes = []interface{}{
nil, // 16: proto.Spec.Content.OutputsEntry
(*Spec_Content_Output)(nil), // 17: proto.Spec.Content.Output
nil, // 18: proto.StepCall.InputsEntry
nil, // 19: proto.StepCall.EnvsEntry
nil, // 19: proto.StepCall.EnvEntry
nil, // 20: proto.StepResult.OutputsEntry
nil, // 21: proto.StepResult.ExportsEntry
(*structpb.Value)(nil), // 22: google.protobuf.Value
......@@ -990,27 +990,26 @@ var file_step_proto_depIdxs = []int32{
5, // 7: proto.StepDefinition.spec:type_name -> proto.Spec
4, // 8: proto.StepDefinition.definition:type_name -> proto.Definition
18, // 9: proto.StepCall.inputs:type_name -> proto.StepCall.InputsEntry
19, // 10: proto.StepCall.envs:type_name -> proto.StepCall.EnvsEntry
19, // 10: proto.StepCall.env:type_name -> proto.StepCall.EnvEntry
3, // 11: proto.StepResult.step:type_name -> proto.Step
5, // 12: proto.StepResult.spec:type_name -> proto.Spec
4, // 13: proto.StepResult.def:type_name -> proto.Definition
2, // 14: proto.StepResult.status:type_name -> proto.StepResult.Status
20, // 15: proto.StepResult.outputs:type_name -> proto.StepResult.OutputsEntry
21, // 16: proto.StepResult.exports:type_name -> proto.StepResult.ExportsEntry
8, // 17: proto.StepResult.children_step_results:type_name -> proto.StepResult
22, // 18: proto.Step.InputsEntry.value:type_name -> google.protobuf.Value
14, // 19: proto.Spec.Content.inputs:type_name -> proto.Spec.Content.InputsEntry
16, // 20: proto.Spec.Content.outputs:type_name -> proto.Spec.Content.OutputsEntry
15, // 21: proto.Spec.Content.InputsEntry.value:type_name -> proto.Spec.Content.Input
1, // 22: proto.Spec.Content.Input.type:type_name -> proto.InputType
22, // 23: proto.Spec.Content.Input.default:type_name -> google.protobuf.Value
17, // 24: proto.Spec.Content.OutputsEntry.value:type_name -> proto.Spec.Content.Output
22, // 25: proto.StepCall.InputsEntry.value:type_name -> google.protobuf.Value
26, // [26:26] is the sub-list for method output_type
26, // [26:26] is the sub-list for method input_type
26, // [26:26] is the sub-list for extension type_name
26, // [26:26] is the sub-list for extension extendee
0, // [0:26] is the sub-list for field type_name
6, // 12: proto.StepResult.stepDefinition:type_name -> proto.StepDefinition
2, // 13: proto.StepResult.status:type_name -> proto.StepResult.Status
20, // 14: proto.StepResult.outputs:type_name -> proto.StepResult.OutputsEntry
21, // 15: proto.StepResult.exports:type_name -> proto.StepResult.ExportsEntry
8, // 16: proto.StepResult.children_step_results:type_name -> proto.StepResult
22, // 17: proto.Step.InputsEntry.value:type_name -> google.protobuf.Value
14, // 18: proto.Spec.Content.inputs:type_name -> proto.Spec.Content.InputsEntry
16, // 19: proto.Spec.Content.outputs:type_name -> proto.Spec.Content.OutputsEntry
15, // 20: proto.Spec.Content.InputsEntry.value:type_name -> proto.Spec.Content.Input
1, // 21: proto.Spec.Content.Input.type:type_name -> proto.InputType
22, // 22: proto.Spec.Content.Input.default:type_name -> google.protobuf.Value
17, // 23: proto.Spec.Content.OutputsEntry.value:type_name -> proto.Spec.Content.Output
22, // 24: proto.StepCall.InputsEntry.value:type_name -> google.protobuf.Value
25, // [25:25] is the sub-list for method output_type
25, // [25:25] is the sub-list for method input_type
25, // [25:25] is the sub-list for extension type_name
25, // [25:25] is the sub-list for extension extendee
0, // [0:25] is the sub-list for field type_name
}
func init() { file_step_proto_init() }
......
......@@ -47,11 +47,12 @@ message Spec {
message StepDefinition {
Spec spec = 1;
Definition definition = 2;
string dir = 3;
}
message StepCall {
map<string,google.protobuf.Value> inputs = 1;
map<string,string> envs = 2;
map<string,string> env = 2;
}
enum InputType {
......@@ -65,8 +66,7 @@ enum InputType {
message StepResult {
Step step = 1;
Spec spec = 2;
Definition def = 3;
StepDefinition stepDefinition = 2;
enum Status {
unspecified = 0;
running = 1;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment