1// SPDX-License-Identifier: MIT
2
3// Internal wire format between the host process of ermite-runner and the
4// executor running inside a sandbox (vsock in a micro-VM, Unix socket in a
5// container). Frames are length-prefixed on the stream (see frame.go); this file
6// defines the payload. It is internal to ermite-runner: no compatibility is
7// promised between runner versions, which is safe because the host attaches its
8// own executable to every sandbox.
9
10// Code generated by protoc-gen-go. DO NOT EDIT.
11// versions:
12// protoc-gen-go v1.36.12
13// protoc (unknown)
14// source: exec.proto
15
16package execpb
17
18import (
19 protoreflect "google.golang.org/protobuf/reflect/protoreflect"
20 protoimpl "google.golang.org/protobuf/runtime/protoimpl"
21 reflect "reflect"
22 sync "sync"
23 unsafe "unsafe"
24)
25
26const (
27 // Verify that this generated code is sufficiently up-to-date.
28 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
29 // Verify that runtime/protoimpl is sufficiently up-to-date.
30 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
31)
32
33type StreamKind int32
34
35const (
36 StreamKind_STREAM_KIND_UNSPECIFIED StreamKind = 0
37 StreamKind_STREAM_KIND_STDOUT StreamKind = 1
38 StreamKind_STREAM_KIND_STDERR StreamKind = 2
39)
40
41// Enum value maps for StreamKind.
42var (
43 StreamKind_name = map[int32]string{
44 0: "STREAM_KIND_UNSPECIFIED",
45 1: "STREAM_KIND_STDOUT",
46 2: "STREAM_KIND_STDERR",
47 }
48 StreamKind_value = map[string]int32{
49 "STREAM_KIND_UNSPECIFIED": 0,
50 "STREAM_KIND_STDOUT": 1,
51 "STREAM_KIND_STDERR": 2,
52 }
53)
54
55func (x StreamKind) Enum() *StreamKind {
56 p := new(StreamKind)
57 *p = x
58 return p
59}
60
61func (x StreamKind) String() string {
62 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
63}
64
65func (StreamKind) Descriptor() protoreflect.EnumDescriptor {
66 return file_exec_proto_enumTypes[0].Descriptor()
67}
68
69func (StreamKind) Type() protoreflect.EnumType {
70 return &file_exec_proto_enumTypes[0]
71}
72
73func (x StreamKind) Number() protoreflect.EnumNumber {
74 return protoreflect.EnumNumber(x)
75}
76
77// Deprecated: Use StreamKind.Descriptor instead.
78func (StreamKind) EnumDescriptor() ([]byte, []int) {
79 return file_exec_proto_rawDescGZIP(), []int{0}
80}
81
82type CancelKind int32
83
84const (
85 CancelKind_CANCEL_KIND_UNSPECIFIED CancelKind = 0 // same as USER
86 CancelKind_CANCEL_KIND_USER CancelKind = 1
87 CancelKind_CANCEL_KIND_TIMEOUT CancelKind = 2
88 CancelKind_CANCEL_KIND_SHUTDOWN CancelKind = 3
89)
90
91// Enum value maps for CancelKind.
92var (
93 CancelKind_name = map[int32]string{
94 0: "CANCEL_KIND_UNSPECIFIED",
95 1: "CANCEL_KIND_USER",
96 2: "CANCEL_KIND_TIMEOUT",
97 3: "CANCEL_KIND_SHUTDOWN",
98 }
99 CancelKind_value = map[string]int32{
100 "CANCEL_KIND_UNSPECIFIED": 0,
101 "CANCEL_KIND_USER": 1,
102 "CANCEL_KIND_TIMEOUT": 2,
103 "CANCEL_KIND_SHUTDOWN": 3,
104 }
105)
106
107func (x CancelKind) Enum() *CancelKind {
108 p := new(CancelKind)
109 *p = x
110 return p
111}
112
113func (x CancelKind) String() string {
114 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
115}
116
117func (CancelKind) Descriptor() protoreflect.EnumDescriptor {
118 return file_exec_proto_enumTypes[1].Descriptor()
119}
120
121func (CancelKind) Type() protoreflect.EnumType {
122 return &file_exec_proto_enumTypes[1]
123}
124
125func (x CancelKind) Number() protoreflect.EnumNumber {
126 return protoreflect.EnumNumber(x)
127}
128
129// Deprecated: Use CancelKind.Descriptor instead.
130func (CancelKind) EnumDescriptor() ([]byte, []int) {
131 return file_exec_proto_rawDescGZIP(), []int{1}
132}
133
134type StepConclusion int32
135
136const (
137 StepConclusion_STEP_CONCLUSION_UNSPECIFIED StepConclusion = 0
138 StepConclusion_STEP_CONCLUSION_SUCCESS StepConclusion = 1
139 StepConclusion_STEP_CONCLUSION_FAILURE StepConclusion = 2
140 StepConclusion_STEP_CONCLUSION_CANCELLED StepConclusion = 3
141 StepConclusion_STEP_CONCLUSION_SKIPPED StepConclusion = 4
142 StepConclusion_STEP_CONCLUSION_TIMED_OUT StepConclusion = 5 // jobs only
143)
144
145// Enum value maps for StepConclusion.
146var (
147 StepConclusion_name = map[int32]string{
148 0: "STEP_CONCLUSION_UNSPECIFIED",
149 1: "STEP_CONCLUSION_SUCCESS",
150 2: "STEP_CONCLUSION_FAILURE",
151 3: "STEP_CONCLUSION_CANCELLED",
152 4: "STEP_CONCLUSION_SKIPPED",
153 5: "STEP_CONCLUSION_TIMED_OUT",
154 }
155 StepConclusion_value = map[string]int32{
156 "STEP_CONCLUSION_UNSPECIFIED": 0,
157 "STEP_CONCLUSION_SUCCESS": 1,
158 "STEP_CONCLUSION_FAILURE": 2,
159 "STEP_CONCLUSION_CANCELLED": 3,
160 "STEP_CONCLUSION_SKIPPED": 4,
161 "STEP_CONCLUSION_TIMED_OUT": 5,
162 }
163)
164
165func (x StepConclusion) Enum() *StepConclusion {
166 p := new(StepConclusion)
167 *p = x
168 return p
169}
170
171func (x StepConclusion) String() string {
172 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
173}
174
175func (StepConclusion) Descriptor() protoreflect.EnumDescriptor {
176 return file_exec_proto_enumTypes[2].Descriptor()
177}
178
179func (StepConclusion) Type() protoreflect.EnumType {
180 return &file_exec_proto_enumTypes[2]
181}
182
183func (x StepConclusion) Number() protoreflect.EnumNumber {
184 return protoreflect.EnumNumber(x)
185}
186
187// Deprecated: Use StepConclusion.Descriptor instead.
188func (StepConclusion) EnumDescriptor() ([]byte, []int) {
189 return file_exec_proto_rawDescGZIP(), []int{2}
190}
191
192// Frame is the only message on the stream.
193type Frame struct {
194 state protoimpl.MessageState `protogen:"open.v1"`
195 // Types that are valid to be assigned to Body:
196 //
197 // *Frame_Hello
198 // *Frame_Run
199 // *Frame_Output
200 // *Frame_Exit
201 // *Frame_Cancel
202 // *Frame_StepStarted
203 // *Frame_StepCompleted
204 // *Frame_Log
205 // *Frame_JobResult
206 Body isFrame_Body `protobuf_oneof:"body"`
207 unknownFields protoimpl.UnknownFields
208 sizeCache protoimpl.SizeCache
209}
210
211func (x *Frame) Reset() {
212 *x = Frame{}
213 mi := &file_exec_proto_msgTypes[0]
214 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
215 ms.StoreMessageInfo(mi)
216}
217
218func (x *Frame) String() string {
219 return protoimpl.X.MessageStringOf(x)
220}
221
222func (*Frame) ProtoMessage() {}
223
224func (x *Frame) ProtoReflect() protoreflect.Message {
225 mi := &file_exec_proto_msgTypes[0]
226 if x != nil {
227 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
228 if ms.LoadMessageInfo() == nil {
229 ms.StoreMessageInfo(mi)
230 }
231 return ms
232 }
233 return mi.MessageOf(x)
234}
235
236// Deprecated: Use Frame.ProtoReflect.Descriptor instead.
237func (*Frame) Descriptor() ([]byte, []int) {
238 return file_exec_proto_rawDescGZIP(), []int{0}
239}
240
241func (x *Frame) GetBody() isFrame_Body {
242 if x != nil {
243 return x.Body
244 }
245 return nil
246}
247
248func (x *Frame) GetHello() *Hello {
249 if x != nil {
250 if x, ok := x.Body.(*Frame_Hello); ok {
251 return x.Hello
252 }
253 }
254 return nil
255}
256
257func (x *Frame) GetRun() *Run {
258 if x != nil {
259 if x, ok := x.Body.(*Frame_Run); ok {
260 return x.Run
261 }
262 }
263 return nil
264}
265
266func (x *Frame) GetOutput() *Output {
267 if x != nil {
268 if x, ok := x.Body.(*Frame_Output); ok {
269 return x.Output
270 }
271 }
272 return nil
273}
274
275func (x *Frame) GetExit() *Exit {
276 if x != nil {
277 if x, ok := x.Body.(*Frame_Exit); ok {
278 return x.Exit
279 }
280 }
281 return nil
282}
283
284func (x *Frame) GetCancel() *Cancel {
285 if x != nil {
286 if x, ok := x.Body.(*Frame_Cancel); ok {
287 return x.Cancel
288 }
289 }
290 return nil
291}
292
293func (x *Frame) GetStepStarted() *StepStarted {
294 if x != nil {
295 if x, ok := x.Body.(*Frame_StepStarted); ok {
296 return x.StepStarted
297 }
298 }
299 return nil
300}
301
302func (x *Frame) GetStepCompleted() *StepCompleted {
303 if x != nil {
304 if x, ok := x.Body.(*Frame_StepCompleted); ok {
305 return x.StepCompleted
306 }
307 }
308 return nil
309}
310
311func (x *Frame) GetLog() *Log {
312 if x != nil {
313 if x, ok := x.Body.(*Frame_Log); ok {
314 return x.Log
315 }
316 }
317 return nil
318}
319
320func (x *Frame) GetJobResult() *JobResult {
321 if x != nil {
322 if x, ok := x.Body.(*Frame_JobResult); ok {
323 return x.JobResult
324 }
325 }
326 return nil
327}
328
329type isFrame_Body interface {
330 isFrame_Body()
331}
332
333type Frame_Hello struct {
334 Hello *Hello `protobuf:"bytes,1,opt,name=hello,proto3,oneof"` // executor -> host, first frame
335}
336
337type Frame_Run struct {
338 Run *Run `protobuf:"bytes,2,opt,name=run,proto3,oneof"` // host -> executor, after Hello
339}
340
341type Frame_Output struct {
342 Output *Output `protobuf:"bytes,3,opt,name=output,proto3,oneof"` // executor -> host
343}
344
345type Frame_Exit struct {
346 Exit *Exit `protobuf:"bytes,4,opt,name=exit,proto3,oneof"` // executor -> host, last frame
347}
348
349type Frame_Cancel struct {
350 Cancel *Cancel `protobuf:"bytes,5,opt,name=cancel,proto3,oneof"` // host -> executor
351}
352
353type Frame_StepStarted struct {
354 StepStarted *StepStarted `protobuf:"bytes,6,opt,name=step_started,json=stepStarted,proto3,oneof"` // executor -> host
355}
356
357type Frame_StepCompleted struct {
358 StepCompleted *StepCompleted `protobuf:"bytes,7,opt,name=step_completed,json=stepCompleted,proto3,oneof"` // executor -> host
359}
360
361type Frame_Log struct {
362 Log *Log `protobuf:"bytes,8,opt,name=log,proto3,oneof"` // executor -> host
363}
364
365type Frame_JobResult struct {
366 JobResult *JobResult `protobuf:"bytes,9,opt,name=job_result,json=jobResult,proto3,oneof"` // executor -> host, before Exit
367}
368
369func (*Frame_Hello) isFrame_Body() {}
370
371func (*Frame_Run) isFrame_Body() {}
372
373func (*Frame_Output) isFrame_Body() {}
374
375func (*Frame_Exit) isFrame_Body() {}
376
377func (*Frame_Cancel) isFrame_Body() {}
378
379func (*Frame_StepStarted) isFrame_Body() {}
380
381func (*Frame_StepCompleted) isFrame_Body() {}
382
383func (*Frame_Log) isFrame_Body() {}
384
385func (*Frame_JobResult) isFrame_Body() {}
386
387type Hello struct {
388 state protoimpl.MessageState `protogen:"open.v1"`
389 Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` // runner version of the executor
390 Sandbox string `protobuf:"bytes,2,opt,name=sandbox,proto3" json:"sandbox,omitempty"` // "vm" or "container"
391 Hostname string `protobuf:"bytes,3,opt,name=hostname,proto3" json:"hostname,omitempty"`
392 unknownFields protoimpl.UnknownFields
393 sizeCache protoimpl.SizeCache
394}
395
396func (x *Hello) Reset() {
397 *x = Hello{}
398 mi := &file_exec_proto_msgTypes[1]
399 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
400 ms.StoreMessageInfo(mi)
401}
402
403func (x *Hello) String() string {
404 return protoimpl.X.MessageStringOf(x)
405}
406
407func (*Hello) ProtoMessage() {}
408
409func (x *Hello) ProtoReflect() protoreflect.Message {
410 mi := &file_exec_proto_msgTypes[1]
411 if x != nil {
412 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
413 if ms.LoadMessageInfo() == nil {
414 ms.StoreMessageInfo(mi)
415 }
416 return ms
417 }
418 return mi.MessageOf(x)
419}
420
421// Deprecated: Use Hello.ProtoReflect.Descriptor instead.
422func (*Hello) Descriptor() ([]byte, []int) {
423 return file_exec_proto_rawDescGZIP(), []int{1}
424}
425
426func (x *Hello) GetVersion() string {
427 if x != nil {
428 return x.Version
429 }
430 return ""
431}
432
433func (x *Hello) GetSandbox() string {
434 if x != nil {
435 return x.Sandbox
436 }
437 return ""
438}
439
440func (x *Hello) GetHostname() string {
441 if x != nil {
442 return x.Hostname
443 }
444 return ""
445}
446
447// Run asks the executor to run a script or a job. Without job it is the stub
448// executor of sandbox-check: the script is run with `sh -c`; an empty script
449// means the built-in diagnostics script. With job the executor runs the job
450// like a GitHub Actions runner and reports it with StepStarted, Log,
451// StepCompleted and JobResult frames, then Exit.
452type Run struct {
453 state protoimpl.MessageState `protogen:"open.v1"`
454 Script string `protobuf:"bytes,1,opt,name=script,proto3" json:"script,omitempty"`
455 Env map[string]string `protobuf:"bytes,2,rep,name=env,proto3" json:"env,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
456 Job *JobSpec `protobuf:"bytes,3,opt,name=job,proto3" json:"job,omitempty"`
457 unknownFields protoimpl.UnknownFields
458 sizeCache protoimpl.SizeCache
459}
460
461func (x *Run) Reset() {
462 *x = Run{}
463 mi := &file_exec_proto_msgTypes[2]
464 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
465 ms.StoreMessageInfo(mi)
466}
467
468func (x *Run) String() string {
469 return protoimpl.X.MessageStringOf(x)
470}
471
472func (*Run) ProtoMessage() {}
473
474func (x *Run) ProtoReflect() protoreflect.Message {
475 mi := &file_exec_proto_msgTypes[2]
476 if x != nil {
477 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
478 if ms.LoadMessageInfo() == nil {
479 ms.StoreMessageInfo(mi)
480 }
481 return ms
482 }
483 return mi.MessageOf(x)
484}
485
486// Deprecated: Use Run.ProtoReflect.Descriptor instead.
487func (*Run) Descriptor() ([]byte, []int) {
488 return file_exec_proto_rawDescGZIP(), []int{2}
489}
490
491func (x *Run) GetScript() string {
492 if x != nil {
493 return x.Script
494 }
495 return ""
496}
497
498func (x *Run) GetEnv() map[string]string {
499 if x != nil {
500 return x.Env
501 }
502 return nil
503}
504
505func (x *Run) GetJob() *JobSpec {
506 if x != nil {
507 return x.Job
508 }
509 return nil
510}
511
512// JobSpec is the job to run: the fields of the job that ermite handed to the
513// host process, minus the tokens (the sandbox never sees them).
514type JobSpec struct {
515 state protoimpl.MessageState `protogen:"open.v1"`
516 WorkflowPath string `protobuf:"bytes,1,opt,name=workflow_path,json=workflowPath,proto3" json:"workflow_path,omitempty"`
517 WorkflowYaml string `protobuf:"bytes,2,opt,name=workflow_yaml,json=workflowYaml,proto3" json:"workflow_yaml,omitempty"`
518 JobKey string `protobuf:"bytes,3,opt,name=job_key,json=jobKey,proto3" json:"job_key,omitempty"`
519 Matrix string `protobuf:"bytes,4,opt,name=matrix,proto3" json:"matrix,omitempty"` // JSON object
520 Contexts string `protobuf:"bytes,5,opt,name=contexts,proto3" json:"contexts,omitempty"` // JSON object
521 Repo string `protobuf:"bytes,6,opt,name=repo,proto3" json:"repo,omitempty"` // repository name
522 TimeoutMinutes int32 `protobuf:"varint,7,opt,name=timeout_minutes,json=timeoutMinutes,proto3" json:"timeout_minutes,omitempty"`
523 RunnerName string `protobuf:"bytes,8,opt,name=runner_name,json=runnerName,proto3" json:"runner_name,omitempty"`
524 RunnerVersion string `protobuf:"bytes,9,opt,name=runner_version,json=runnerVersion,proto3" json:"runner_version,omitempty"`
525 // runner_environment is the runner.environment value ("github-hosted" or "self-hosted").
526 RunnerEnvironment string `protobuf:"bytes,10,opt,name=runner_environment,json=runnerEnvironment,proto3" json:"runner_environment,omitempty"`
527 Debug bool `protobuf:"varint,11,opt,name=debug,proto3" json:"debug,omitempty"` // ACTIONS_STEP_DEBUG
528 // deadline_ms is what is left of the job timeout when the host sends this
529 // Run, in milliseconds: the timeout counts from the moment the host received
530 // the job (runner.proto: Job.timeout_minutes), not from the start of the
531 // executor, and booting the sandbox takes time. 0 means "use
532 // timeout_minutes from now".
533 DeadlineMs int64 `protobuf:"varint,12,opt,name=deadline_ms,json=deadlineMs,proto3" json:"deadline_ms,omitempty"`
534 unknownFields protoimpl.UnknownFields
535 sizeCache protoimpl.SizeCache
536}
537
538func (x *JobSpec) Reset() {
539 *x = JobSpec{}
540 mi := &file_exec_proto_msgTypes[3]
541 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
542 ms.StoreMessageInfo(mi)
543}
544
545func (x *JobSpec) String() string {
546 return protoimpl.X.MessageStringOf(x)
547}
548
549func (*JobSpec) ProtoMessage() {}
550
551func (x *JobSpec) ProtoReflect() protoreflect.Message {
552 mi := &file_exec_proto_msgTypes[3]
553 if x != nil {
554 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
555 if ms.LoadMessageInfo() == nil {
556 ms.StoreMessageInfo(mi)
557 }
558 return ms
559 }
560 return mi.MessageOf(x)
561}
562
563// Deprecated: Use JobSpec.ProtoReflect.Descriptor instead.
564func (*JobSpec) Descriptor() ([]byte, []int) {
565 return file_exec_proto_rawDescGZIP(), []int{3}
566}
567
568func (x *JobSpec) GetWorkflowPath() string {
569 if x != nil {
570 return x.WorkflowPath
571 }
572 return ""
573}
574
575func (x *JobSpec) GetWorkflowYaml() string {
576 if x != nil {
577 return x.WorkflowYaml
578 }
579 return ""
580}
581
582func (x *JobSpec) GetJobKey() string {
583 if x != nil {
584 return x.JobKey
585 }
586 return ""
587}
588
589func (x *JobSpec) GetMatrix() string {
590 if x != nil {
591 return x.Matrix
592 }
593 return ""
594}
595
596func (x *JobSpec) GetContexts() string {
597 if x != nil {
598 return x.Contexts
599 }
600 return ""
601}
602
603func (x *JobSpec) GetRepo() string {
604 if x != nil {
605 return x.Repo
606 }
607 return ""
608}
609
610func (x *JobSpec) GetTimeoutMinutes() int32 {
611 if x != nil {
612 return x.TimeoutMinutes
613 }
614 return 0
615}
616
617func (x *JobSpec) GetRunnerName() string {
618 if x != nil {
619 return x.RunnerName
620 }
621 return ""
622}
623
624func (x *JobSpec) GetRunnerVersion() string {
625 if x != nil {
626 return x.RunnerVersion
627 }
628 return ""
629}
630
631func (x *JobSpec) GetRunnerEnvironment() string {
632 if x != nil {
633 return x.RunnerEnvironment
634 }
635 return ""
636}
637
638func (x *JobSpec) GetDebug() bool {
639 if x != nil {
640 return x.Debug
641 }
642 return false
643}
644
645func (x *JobSpec) GetDeadlineMs() int64 {
646 if x != nil {
647 return x.DeadlineMs
648 }
649 return 0
650}
651
652type Output struct {
653 state protoimpl.MessageState `protogen:"open.v1"`
654 Stream StreamKind `protobuf:"varint,1,opt,name=stream,proto3,enum=ermite.runner.exec.v1.StreamKind" json:"stream,omitempty"`
655 Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
656 UnixNano int64 `protobuf:"varint,3,opt,name=unix_nano,json=unixNano,proto3" json:"unix_nano,omitempty"`
657 unknownFields protoimpl.UnknownFields
658 sizeCache protoimpl.SizeCache
659}
660
661func (x *Output) Reset() {
662 *x = Output{}
663 mi := &file_exec_proto_msgTypes[4]
664 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
665 ms.StoreMessageInfo(mi)
666}
667
668func (x *Output) String() string {
669 return protoimpl.X.MessageStringOf(x)
670}
671
672func (*Output) ProtoMessage() {}
673
674func (x *Output) ProtoReflect() protoreflect.Message {
675 mi := &file_exec_proto_msgTypes[4]
676 if x != nil {
677 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
678 if ms.LoadMessageInfo() == nil {
679 ms.StoreMessageInfo(mi)
680 }
681 return ms
682 }
683 return mi.MessageOf(x)
684}
685
686// Deprecated: Use Output.ProtoReflect.Descriptor instead.
687func (*Output) Descriptor() ([]byte, []int) {
688 return file_exec_proto_rawDescGZIP(), []int{4}
689}
690
691func (x *Output) GetStream() StreamKind {
692 if x != nil {
693 return x.Stream
694 }
695 return StreamKind_STREAM_KIND_UNSPECIFIED
696}
697
698func (x *Output) GetData() []byte {
699 if x != nil {
700 return x.Data
701 }
702 return nil
703}
704
705func (x *Output) GetUnixNano() int64 {
706 if x != nil {
707 return x.UnixNano
708 }
709 return 0
710}
711
712type Exit struct {
713 state protoimpl.MessageState `protogen:"open.v1"`
714 Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
715 Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // set when the executor failed to run the script at all
716 unknownFields protoimpl.UnknownFields
717 sizeCache protoimpl.SizeCache
718}
719
720func (x *Exit) Reset() {
721 *x = Exit{}
722 mi := &file_exec_proto_msgTypes[5]
723 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
724 ms.StoreMessageInfo(mi)
725}
726
727func (x *Exit) String() string {
728 return protoimpl.X.MessageStringOf(x)
729}
730
731func (*Exit) ProtoMessage() {}
732
733func (x *Exit) ProtoReflect() protoreflect.Message {
734 mi := &file_exec_proto_msgTypes[5]
735 if x != nil {
736 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
737 if ms.LoadMessageInfo() == nil {
738 ms.StoreMessageInfo(mi)
739 }
740 return ms
741 }
742 return mi.MessageOf(x)
743}
744
745// Deprecated: Use Exit.ProtoReflect.Descriptor instead.
746func (*Exit) Descriptor() ([]byte, []int) {
747 return file_exec_proto_rawDescGZIP(), []int{5}
748}
749
750func (x *Exit) GetCode() int32 {
751 if x != nil {
752 return x.Code
753 }
754 return 0
755}
756
757func (x *Exit) GetError() string {
758 if x != nil {
759 return x.Error
760 }
761 return ""
762}
763
764// Cancel asks the executor to stop the running script. The executor escalates
765// like the official runner: SIGINT to the script's process group at once,
766// SIGTERM 7.5 s later, SIGKILL 2.5 s after that.
767type Cancel struct {
768 state protoimpl.MessageState `protogen:"open.v1"`
769 // reason is for the job log and diagnostics ("cancelled by the user",
770 // "job timeout", ...); it never changes the behaviour.
771 Reason string `protobuf:"bytes,1,opt,name=reason,proto3" json:"reason,omitempty"`
772 // kind tells the job executor how the job ends: cancelled, timed out, or
773 // cancelled because the runner shuts down. The stub executor ignores it.
774 Kind CancelKind `protobuf:"varint,2,opt,name=kind,proto3,enum=ermite.runner.exec.v1.CancelKind" json:"kind,omitempty"`
775 unknownFields protoimpl.UnknownFields
776 sizeCache protoimpl.SizeCache
777}
778
779func (x *Cancel) Reset() {
780 *x = Cancel{}
781 mi := &file_exec_proto_msgTypes[6]
782 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
783 ms.StoreMessageInfo(mi)
784}
785
786func (x *Cancel) String() string {
787 return protoimpl.X.MessageStringOf(x)
788}
789
790func (*Cancel) ProtoMessage() {}
791
792func (x *Cancel) ProtoReflect() protoreflect.Message {
793 mi := &file_exec_proto_msgTypes[6]
794 if x != nil {
795 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
796 if ms.LoadMessageInfo() == nil {
797 ms.StoreMessageInfo(mi)
798 }
799 return ms
800 }
801 return mi.MessageOf(x)
802}
803
804// Deprecated: Use Cancel.ProtoReflect.Descriptor instead.
805func (*Cancel) Descriptor() ([]byte, []int) {
806 return file_exec_proto_rawDescGZIP(), []int{6}
807}
808
809func (x *Cancel) GetReason() string {
810 if x != nil {
811 return x.Reason
812 }
813 return ""
814}
815
816func (x *Cancel) GetKind() CancelKind {
817 if x != nil {
818 return x.Kind
819 }
820 return CancelKind_CANCEL_KIND_UNSPECIFIED
821}
822
823// Steps are numbered like GitHub's log: "Set up job" is 1, the steps of the
824// workflow follow, "Complete job" is last.
825type StepStarted struct {
826 state protoimpl.MessageState `protogen:"open.v1"`
827 Number int32 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
828 Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
829 UnixNano int64 `protobuf:"varint,3,opt,name=unix_nano,json=unixNano,proto3" json:"unix_nano,omitempty"`
830 unknownFields protoimpl.UnknownFields
831 sizeCache protoimpl.SizeCache
832}
833
834func (x *StepStarted) Reset() {
835 *x = StepStarted{}
836 mi := &file_exec_proto_msgTypes[7]
837 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
838 ms.StoreMessageInfo(mi)
839}
840
841func (x *StepStarted) String() string {
842 return protoimpl.X.MessageStringOf(x)
843}
844
845func (*StepStarted) ProtoMessage() {}
846
847func (x *StepStarted) ProtoReflect() protoreflect.Message {
848 mi := &file_exec_proto_msgTypes[7]
849 if x != nil {
850 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
851 if ms.LoadMessageInfo() == nil {
852 ms.StoreMessageInfo(mi)
853 }
854 return ms
855 }
856 return mi.MessageOf(x)
857}
858
859// Deprecated: Use StepStarted.ProtoReflect.Descriptor instead.
860func (*StepStarted) Descriptor() ([]byte, []int) {
861 return file_exec_proto_rawDescGZIP(), []int{7}
862}
863
864func (x *StepStarted) GetNumber() int32 {
865 if x != nil {
866 return x.Number
867 }
868 return 0
869}
870
871func (x *StepStarted) GetName() string {
872 if x != nil {
873 return x.Name
874 }
875 return ""
876}
877
878func (x *StepStarted) GetUnixNano() int64 {
879 if x != nil {
880 return x.UnixNano
881 }
882 return 0
883}
884
885type StepCompleted struct {
886 state protoimpl.MessageState `protogen:"open.v1"`
887 Number int32 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
888 Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
889 Conclusion StepConclusion `protobuf:"varint,3,opt,name=conclusion,proto3,enum=ermite.runner.exec.v1.StepConclusion" json:"conclusion,omitempty"`
890 UnixNano int64 `protobuf:"varint,4,opt,name=unix_nano,json=unixNano,proto3" json:"unix_nano,omitempty"`
891 unknownFields protoimpl.UnknownFields
892 sizeCache protoimpl.SizeCache
893}
894
895func (x *StepCompleted) Reset() {
896 *x = StepCompleted{}
897 mi := &file_exec_proto_msgTypes[8]
898 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
899 ms.StoreMessageInfo(mi)
900}
901
902func (x *StepCompleted) String() string {
903 return protoimpl.X.MessageStringOf(x)
904}
905
906func (*StepCompleted) ProtoMessage() {}
907
908func (x *StepCompleted) ProtoReflect() protoreflect.Message {
909 mi := &file_exec_proto_msgTypes[8]
910 if x != nil {
911 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
912 if ms.LoadMessageInfo() == nil {
913 ms.StoreMessageInfo(mi)
914 }
915 return ms
916 }
917 return mi.MessageOf(x)
918}
919
920// Deprecated: Use StepCompleted.ProtoReflect.Descriptor instead.
921func (*StepCompleted) Descriptor() ([]byte, []int) {
922 return file_exec_proto_rawDescGZIP(), []int{8}
923}
924
925func (x *StepCompleted) GetNumber() int32 {
926 if x != nil {
927 return x.Number
928 }
929 return 0
930}
931
932func (x *StepCompleted) GetName() string {
933 if x != nil {
934 return x.Name
935 }
936 return ""
937}
938
939func (x *StepCompleted) GetConclusion() StepConclusion {
940 if x != nil {
941 return x.Conclusion
942 }
943 return StepConclusion_STEP_CONCLUSION_UNSPECIFIED
944}
945
946func (x *StepCompleted) GetUnixNano() int64 {
947 if x != nil {
948 return x.UnixNano
949 }
950 return 0
951}
952
953// Log is one line of the job log, without terminator, valid UTF-8. A line of
954// more than 64 KiB is cut by the executor into pieces at character boundaries;
955// every piece but the first has continued set (the AppendLog rule).
956type Log struct {
957 state protoimpl.MessageState `protogen:"open.v1"`
958 Step int32 `protobuf:"varint,1,opt,name=step,proto3" json:"step,omitempty"`
959 UnixNano int64 `protobuf:"varint,2,opt,name=unix_nano,json=unixNano,proto3" json:"unix_nano,omitempty"`
960 Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"`
961 Continued bool `protobuf:"varint,4,opt,name=continued,proto3" json:"continued,omitempty"`
962 unknownFields protoimpl.UnknownFields
963 sizeCache protoimpl.SizeCache
964}
965
966func (x *Log) Reset() {
967 *x = Log{}
968 mi := &file_exec_proto_msgTypes[9]
969 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
970 ms.StoreMessageInfo(mi)
971}
972
973func (x *Log) String() string {
974 return protoimpl.X.MessageStringOf(x)
975}
976
977func (*Log) ProtoMessage() {}
978
979func (x *Log) ProtoReflect() protoreflect.Message {
980 mi := &file_exec_proto_msgTypes[9]
981 if x != nil {
982 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
983 if ms.LoadMessageInfo() == nil {
984 ms.StoreMessageInfo(mi)
985 }
986 return ms
987 }
988 return mi.MessageOf(x)
989}
990
991// Deprecated: Use Log.ProtoReflect.Descriptor instead.
992func (*Log) Descriptor() ([]byte, []int) {
993 return file_exec_proto_rawDescGZIP(), []int{9}
994}
995
996func (x *Log) GetStep() int32 {
997 if x != nil {
998 return x.Step
999 }
1000 return 0
1001}
1002
1003func (x *Log) GetUnixNano() int64 {
1004 if x != nil {
1005 return x.UnixNano
1006 }
1007 return 0
1008}
1009
1010func (x *Log) GetText() string {
1011 if x != nil {
1012 return x.Text
1013 }
1014 return ""
1015}
1016
1017func (x *Log) GetContinued() bool {
1018 if x != nil {
1019 return x.Continued
1020 }
1021 return false
1022}
1023
1024// JobResult is the outcome of the job; Exit follows.
1025type JobResult struct {
1026 state protoimpl.MessageState `protogen:"open.v1"`
1027 Conclusion StepConclusion `protobuf:"varint,1,opt,name=conclusion,proto3,enum=ermite.runner.exec.v1.StepConclusion" json:"conclusion,omitempty"`
1028 Outputs map[string]string `protobuf:"bytes,2,rep,name=outputs,proto3" json:"outputs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
1029 Error string `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"`
1030 RunnerShutdown bool `protobuf:"varint,4,opt,name=runner_shutdown,json=runnerShutdown,proto3" json:"runner_shutdown,omitempty"`
1031 unknownFields protoimpl.UnknownFields
1032 sizeCache protoimpl.SizeCache
1033}
1034
1035func (x *JobResult) Reset() {
1036 *x = JobResult{}
1037 mi := &file_exec_proto_msgTypes[10]
1038 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1039 ms.StoreMessageInfo(mi)
1040}
1041
1042func (x *JobResult) String() string {
1043 return protoimpl.X.MessageStringOf(x)
1044}
1045
1046func (*JobResult) ProtoMessage() {}
1047
1048func (x *JobResult) ProtoReflect() protoreflect.Message {
1049 mi := &file_exec_proto_msgTypes[10]
1050 if x != nil {
1051 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1052 if ms.LoadMessageInfo() == nil {
1053 ms.StoreMessageInfo(mi)
1054 }
1055 return ms
1056 }
1057 return mi.MessageOf(x)
1058}
1059
1060// Deprecated: Use JobResult.ProtoReflect.Descriptor instead.
1061func (*JobResult) Descriptor() ([]byte, []int) {
1062 return file_exec_proto_rawDescGZIP(), []int{10}
1063}
1064
1065func (x *JobResult) GetConclusion() StepConclusion {
1066 if x != nil {
1067 return x.Conclusion
1068 }
1069 return StepConclusion_STEP_CONCLUSION_UNSPECIFIED
1070}
1071
1072func (x *JobResult) GetOutputs() map[string]string {
1073 if x != nil {
1074 return x.Outputs
1075 }
1076 return nil
1077}
1078
1079func (x *JobResult) GetError() string {
1080 if x != nil {
1081 return x.Error
1082 }
1083 return ""
1084}
1085
1086func (x *JobResult) GetRunnerShutdown() bool {
1087 if x != nil {
1088 return x.RunnerShutdown
1089 }
1090 return false
1091}
1092
1093var File_exec_proto protoreflect.FileDescriptor
1094
1095const file_exec_proto_rawDesc = "" +
1096 "\n" +
1097 "\n" +
1098 "exec.proto\x12\x15ermite.runner.exec.v1\"\xa5\x04\n" +
1099 "\x05Frame\x124\n" +
1100 "\x05hello\x18\x01 \x01(\v2\x1c.ermite.runner.exec.v1.HelloH\x00R\x05hello\x12.\n" +
1101 "\x03run\x18\x02 \x01(\v2\x1a.ermite.runner.exec.v1.RunH\x00R\x03run\x127\n" +
1102 "\x06output\x18\x03 \x01(\v2\x1d.ermite.runner.exec.v1.OutputH\x00R\x06output\x121\n" +
1103 "\x04exit\x18\x04 \x01(\v2\x1b.ermite.runner.exec.v1.ExitH\x00R\x04exit\x127\n" +
1104 "\x06cancel\x18\x05 \x01(\v2\x1d.ermite.runner.exec.v1.CancelH\x00R\x06cancel\x12G\n" +
1105 "\fstep_started\x18\x06 \x01(\v2\".ermite.runner.exec.v1.StepStartedH\x00R\vstepStarted\x12M\n" +
1106 "\x0estep_completed\x18\a \x01(\v2$.ermite.runner.exec.v1.StepCompletedH\x00R\rstepCompleted\x12.\n" +
1107 "\x03log\x18\b \x01(\v2\x1a.ermite.runner.exec.v1.LogH\x00R\x03log\x12A\n" +
1108 "\n" +
1109 "job_result\x18\t \x01(\v2 .ermite.runner.exec.v1.JobResultH\x00R\tjobResultB\x06\n" +
1110 "\x04body\"W\n" +
1111 "\x05Hello\x12\x18\n" +
1112 "\aversion\x18\x01 \x01(\tR\aversion\x12\x18\n" +
1113 "\asandbox\x18\x02 \x01(\tR\asandbox\x12\x1a\n" +
1114 "\bhostname\x18\x03 \x01(\tR\bhostname\"\xbe\x01\n" +
1115 "\x03Run\x12\x16\n" +
1116 "\x06script\x18\x01 \x01(\tR\x06script\x125\n" +
1117 "\x03env\x18\x02 \x03(\v2#.ermite.runner.exec.v1.Run.EnvEntryR\x03env\x120\n" +
1118 "\x03job\x18\x03 \x01(\v2\x1e.ermite.runner.exec.v1.JobSpecR\x03job\x1a6\n" +
1119 "\bEnvEntry\x12\x10\n" +
1120 "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
1121 "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x8b\x03\n" +
1122 "\aJobSpec\x12#\n" +
1123 "\rworkflow_path\x18\x01 \x01(\tR\fworkflowPath\x12#\n" +
1124 "\rworkflow_yaml\x18\x02 \x01(\tR\fworkflowYaml\x12\x17\n" +
1125 "\ajob_key\x18\x03 \x01(\tR\x06jobKey\x12\x16\n" +
1126 "\x06matrix\x18\x04 \x01(\tR\x06matrix\x12\x1a\n" +
1127 "\bcontexts\x18\x05 \x01(\tR\bcontexts\x12\x12\n" +
1128 "\x04repo\x18\x06 \x01(\tR\x04repo\x12'\n" +
1129 "\x0ftimeout_minutes\x18\a \x01(\x05R\x0etimeoutMinutes\x12\x1f\n" +
1130 "\vrunner_name\x18\b \x01(\tR\n" +
1131 "runnerName\x12%\n" +
1132 "\x0erunner_version\x18\t \x01(\tR\rrunnerVersion\x12-\n" +
1133 "\x12runner_environment\x18\n" +
1134 " \x01(\tR\x11runnerEnvironment\x12\x14\n" +
1135 "\x05debug\x18\v \x01(\bR\x05debug\x12\x1f\n" +
1136 "\vdeadline_ms\x18\f \x01(\x03R\n" +
1137 "deadlineMs\"t\n" +
1138 "\x06Output\x129\n" +
1139 "\x06stream\x18\x01 \x01(\x0e2!.ermite.runner.exec.v1.StreamKindR\x06stream\x12\x12\n" +
1140 "\x04data\x18\x02 \x01(\fR\x04data\x12\x1b\n" +
1141 "\tunix_nano\x18\x03 \x01(\x03R\bunixNano\"0\n" +
1142 "\x04Exit\x12\x12\n" +
1143 "\x04code\x18\x01 \x01(\x05R\x04code\x12\x14\n" +
1144 "\x05error\x18\x02 \x01(\tR\x05error\"W\n" +
1145 "\x06Cancel\x12\x16\n" +
1146 "\x06reason\x18\x01 \x01(\tR\x06reason\x125\n" +
1147 "\x04kind\x18\x02 \x01(\x0e2!.ermite.runner.exec.v1.CancelKindR\x04kind\"V\n" +
1148 "\vStepStarted\x12\x16\n" +
1149 "\x06number\x18\x01 \x01(\x05R\x06number\x12\x12\n" +
1150 "\x04name\x18\x02 \x01(\tR\x04name\x12\x1b\n" +
1151 "\tunix_nano\x18\x03 \x01(\x03R\bunixNano\"\x9f\x01\n" +
1152 "\rStepCompleted\x12\x16\n" +
1153 "\x06number\x18\x01 \x01(\x05R\x06number\x12\x12\n" +
1154 "\x04name\x18\x02 \x01(\tR\x04name\x12E\n" +
1155 "\n" +
1156 "conclusion\x18\x03 \x01(\x0e2%.ermite.runner.exec.v1.StepConclusionR\n" +
1157 "conclusion\x12\x1b\n" +
1158 "\tunix_nano\x18\x04 \x01(\x03R\bunixNano\"h\n" +
1159 "\x03Log\x12\x12\n" +
1160 "\x04step\x18\x01 \x01(\x05R\x04step\x12\x1b\n" +
1161 "\tunix_nano\x18\x02 \x01(\x03R\bunixNano\x12\x12\n" +
1162 "\x04text\x18\x03 \x01(\tR\x04text\x12\x1c\n" +
1163 "\tcontinued\x18\x04 \x01(\bR\tcontinued\"\x96\x02\n" +
1164 "\tJobResult\x12E\n" +
1165 "\n" +
1166 "conclusion\x18\x01 \x01(\x0e2%.ermite.runner.exec.v1.StepConclusionR\n" +
1167 "conclusion\x12G\n" +
1168 "\aoutputs\x18\x02 \x03(\v2-.ermite.runner.exec.v1.JobResult.OutputsEntryR\aoutputs\x12\x14\n" +
1169 "\x05error\x18\x03 \x01(\tR\x05error\x12'\n" +
1170 "\x0frunner_shutdown\x18\x04 \x01(\bR\x0erunnerShutdown\x1a:\n" +
1171 "\fOutputsEntry\x12\x10\n" +
1172 "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
1173 "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01*Y\n" +
1174 "\n" +
1175 "StreamKind\x12\x1b\n" +
1176 "\x17STREAM_KIND_UNSPECIFIED\x10\x00\x12\x16\n" +
1177 "\x12STREAM_KIND_STDOUT\x10\x01\x12\x16\n" +
1178 "\x12STREAM_KIND_STDERR\x10\x02*r\n" +
1179 "\n" +
1180 "CancelKind\x12\x1b\n" +
1181 "\x17CANCEL_KIND_UNSPECIFIED\x10\x00\x12\x14\n" +
1182 "\x10CANCEL_KIND_USER\x10\x01\x12\x17\n" +
1183 "\x13CANCEL_KIND_TIMEOUT\x10\x02\x12\x18\n" +
1184 "\x14CANCEL_KIND_SHUTDOWN\x10\x03*\xc6\x01\n" +
1185 "\x0eStepConclusion\x12\x1f\n" +
1186 "\x1bSTEP_CONCLUSION_UNSPECIFIED\x10\x00\x12\x1b\n" +
1187 "\x17STEP_CONCLUSION_SUCCESS\x10\x01\x12\x1b\n" +
1188 "\x17STEP_CONCLUSION_FAILURE\x10\x02\x12\x1d\n" +
1189 "\x19STEP_CONCLUSION_CANCELLED\x10\x03\x12\x1b\n" +
1190 "\x17STEP_CONCLUSION_SKIPPED\x10\x04\x12\x1d\n" +
1191 "\x19STEP_CONCLUSION_TIMED_OUT\x10\x05B4Z2bnema.dev/ermite-runner/internal/execstream/execpbb\x06proto3"
1192
1193var (
1194 file_exec_proto_rawDescOnce sync.Once
1195 file_exec_proto_rawDescData []byte
1196)
1197
1198func file_exec_proto_rawDescGZIP() []byte {
1199 file_exec_proto_rawDescOnce.Do(func() {
1200 file_exec_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_exec_proto_rawDesc), len(file_exec_proto_rawDesc)))
1201 })
1202 return file_exec_proto_rawDescData
1203}
1204
1205var file_exec_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
1206var file_exec_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
1207var file_exec_proto_goTypes = []any{
1208 (StreamKind)(0), // 0: ermite.runner.exec.v1.StreamKind
1209 (CancelKind)(0), // 1: ermite.runner.exec.v1.CancelKind
1210 (StepConclusion)(0), // 2: ermite.runner.exec.v1.StepConclusion
1211 (*Frame)(nil), // 3: ermite.runner.exec.v1.Frame
1212 (*Hello)(nil), // 4: ermite.runner.exec.v1.Hello
1213 (*Run)(nil), // 5: ermite.runner.exec.v1.Run
1214 (*JobSpec)(nil), // 6: ermite.runner.exec.v1.JobSpec
1215 (*Output)(nil), // 7: ermite.runner.exec.v1.Output
1216 (*Exit)(nil), // 8: ermite.runner.exec.v1.Exit
1217 (*Cancel)(nil), // 9: ermite.runner.exec.v1.Cancel
1218 (*StepStarted)(nil), // 10: ermite.runner.exec.v1.StepStarted
1219 (*StepCompleted)(nil), // 11: ermite.runner.exec.v1.StepCompleted
1220 (*Log)(nil), // 12: ermite.runner.exec.v1.Log
1221 (*JobResult)(nil), // 13: ermite.runner.exec.v1.JobResult
1222 nil, // 14: ermite.runner.exec.v1.Run.EnvEntry
1223 nil, // 15: ermite.runner.exec.v1.JobResult.OutputsEntry
1224}
1225var file_exec_proto_depIdxs = []int32{
1226 4, // 0: ermite.runner.exec.v1.Frame.hello:type_name -> ermite.runner.exec.v1.Hello
1227 5, // 1: ermite.runner.exec.v1.Frame.run:type_name -> ermite.runner.exec.v1.Run
1228 7, // 2: ermite.runner.exec.v1.Frame.output:type_name -> ermite.runner.exec.v1.Output
1229 8, // 3: ermite.runner.exec.v1.Frame.exit:type_name -> ermite.runner.exec.v1.Exit
1230 9, // 4: ermite.runner.exec.v1.Frame.cancel:type_name -> ermite.runner.exec.v1.Cancel
1231 10, // 5: ermite.runner.exec.v1.Frame.step_started:type_name -> ermite.runner.exec.v1.StepStarted
1232 11, // 6: ermite.runner.exec.v1.Frame.step_completed:type_name -> ermite.runner.exec.v1.StepCompleted
1233 12, // 7: ermite.runner.exec.v1.Frame.log:type_name -> ermite.runner.exec.v1.Log
1234 13, // 8: ermite.runner.exec.v1.Frame.job_result:type_name -> ermite.runner.exec.v1.JobResult
1235 14, // 9: ermite.runner.exec.v1.Run.env:type_name -> ermite.runner.exec.v1.Run.EnvEntry
1236 6, // 10: ermite.runner.exec.v1.Run.job:type_name -> ermite.runner.exec.v1.JobSpec
1237 0, // 11: ermite.runner.exec.v1.Output.stream:type_name -> ermite.runner.exec.v1.StreamKind
1238 1, // 12: ermite.runner.exec.v1.Cancel.kind:type_name -> ermite.runner.exec.v1.CancelKind
1239 2, // 13: ermite.runner.exec.v1.StepCompleted.conclusion:type_name -> ermite.runner.exec.v1.StepConclusion
1240 2, // 14: ermite.runner.exec.v1.JobResult.conclusion:type_name -> ermite.runner.exec.v1.StepConclusion
1241 15, // 15: ermite.runner.exec.v1.JobResult.outputs:type_name -> ermite.runner.exec.v1.JobResult.OutputsEntry
1242 16, // [16:16] is the sub-list for method output_type
1243 16, // [16:16] is the sub-list for method input_type
1244 16, // [16:16] is the sub-list for extension type_name
1245 16, // [16:16] is the sub-list for extension extendee
1246 0, // [0:16] is the sub-list for field type_name
1247}
1248
1249func init() { file_exec_proto_init() }
1250func file_exec_proto_init() {
1251 if File_exec_proto != nil {
1252 return
1253 }
1254 file_exec_proto_msgTypes[0].OneofWrappers = []any{
1255 (*Frame_Hello)(nil),
1256 (*Frame_Run)(nil),
1257 (*Frame_Output)(nil),
1258 (*Frame_Exit)(nil),
1259 (*Frame_Cancel)(nil),
1260 (*Frame_StepStarted)(nil),
1261 (*Frame_StepCompleted)(nil),
1262 (*Frame_Log)(nil),
1263 (*Frame_JobResult)(nil),
1264 }
1265 type x struct{}
1266 out := protoimpl.TypeBuilder{
1267 File: protoimpl.DescBuilder{
1268 GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1269 RawDescriptor: unsafe.Slice(unsafe.StringData(file_exec_proto_rawDesc), len(file_exec_proto_rawDesc)),
1270 NumEnums: 3,
1271 NumMessages: 13,
1272 NumExtensions: 0,
1273 NumServices: 0,
1274 },
1275 GoTypes: file_exec_proto_goTypes,
1276 DependencyIndexes: file_exec_proto_depIdxs,
1277 EnumInfos: file_exec_proto_enumTypes,
1278 MessageInfos: file_exec_proto_msgTypes,
1279 }.Build()
1280 File_exec_proto = out.File
1281 file_exec_proto_goTypes = nil
1282 file_exec_proto_depIdxs = nil
1283}