Documentation
¶
Index ¶
- Constants
- Variables
- func RegisterBackendPluginServer(s grpc.ServiceRegistrar, srv BackendPluginServer)
- type BackendPluginClient
- type BackendPluginServer
- type BackendPlugin_CopyInClient
- type BackendPlugin_CopyInServer
- type BackendPlugin_CopyOutClient
- type BackendPlugin_CopyOutServer
- type BackendPlugin_ExecClient
- type BackendPlugin_ExecServer
- type BackendPlugin_StartClient
- type BackendPlugin_StartServer
- type CapabilitiesRequest
- type CapabilitiesResponse
- func (*CapabilitiesResponse) Descriptor() ([]byte, []int)deprecated
- func (x *CapabilitiesResponse) GetName() string
- func (*CapabilitiesResponse) ProtoMessage()
- func (x *CapabilitiesResponse) ProtoReflect() protoreflect.Message
- func (x *CapabilitiesResponse) Reset()
- func (x *CapabilitiesResponse) String() string
- type CopyInChunk
- func (*CopyInChunk) Descriptor() ([]byte, []int)deprecated
- func (x *CopyInChunk) GetData() []byte
- func (x *CopyInChunk) GetDestPath() string
- func (x *CopyInChunk) GetEnvironmentId() string
- func (*CopyInChunk) ProtoMessage()
- func (x *CopyInChunk) ProtoReflect() protoreflect.Message
- func (x *CopyInChunk) Reset()
- func (x *CopyInChunk) String() string
- type CopyInResponse
- type CopyOutChunk
- type CopyOutRequest
- func (*CopyOutRequest) Descriptor() ([]byte, []int)deprecated
- func (x *CopyOutRequest) GetEnvironmentId() string
- func (x *CopyOutRequest) GetSrcPath() string
- func (*CopyOutRequest) ProtoMessage()
- func (x *CopyOutRequest) ProtoReflect() protoreflect.Message
- func (x *CopyOutRequest) Reset()
- func (x *CopyOutRequest) String() string
- type CreateRequest
- func (*CreateRequest) Descriptor() ([]byte, []int)deprecated
- func (x *CreateRequest) GetBackendOptions() map[string]string
- func (x *CreateRequest) GetCapAdd() []string
- func (x *CreateRequest) GetCapDrop() []string
- func (x *CreateRequest) GetEnvironmentTimeout() *durationpb.Duration
- func (x *CreateRequest) GetImage() string
- func (x *CreateRequest) GetLabelArg() string
- func (x *CreateRequest) GetName() string
- func (x *CreateRequest) GetServices() []*ServiceContainer
- func (*CreateRequest) ProtoMessage()
- func (x *CreateRequest) ProtoReflect() protoreflect.Message
- func (x *CreateRequest) Reset()
- func (x *CreateRequest) String() string
- type CreateResponse
- func (*CreateResponse) Descriptor() ([]byte, []int)deprecated
- func (x *CreateResponse) GetActPath() string
- func (x *CreateResponse) GetArch() string
- func (x *CreateResponse) GetDefaultPathVariable() string
- func (x *CreateResponse) GetEnvironmentCaseInsensitive() bool
- func (x *CreateResponse) GetEnvironmentId() string
- func (x *CreateResponse) GetOs() string
- func (x *CreateResponse) GetPathSeparator() string
- func (x *CreateResponse) GetPathVariableName() string
- func (x *CreateResponse) GetRootPath() string
- func (x *CreateResponse) GetTempPath() string
- func (x *CreateResponse) GetToolCachePath() string
- func (*CreateResponse) ProtoMessage()
- func (x *CreateResponse) ProtoReflect() protoreflect.Message
- func (x *CreateResponse) Reset()
- func (x *CreateResponse) String() string
- type DataChunk
- type DataChunk_Stream
- func (DataChunk_Stream) Descriptor() protoreflect.EnumDescriptor
- func (x DataChunk_Stream) Enum() *DataChunk_Stream
- func (DataChunk_Stream) EnumDescriptor() ([]byte, []int)deprecated
- func (x DataChunk_Stream) Number() protoreflect.EnumNumber
- func (x DataChunk_Stream) String() string
- func (DataChunk_Stream) Type() protoreflect.EnumType
- type ExecComplete
- type ExecFailed
- type ExecOutput
- func (*ExecOutput) Descriptor() ([]byte, []int)deprecated
- func (x *ExecOutput) GetData() *DataChunk
- func (x *ExecOutput) GetExecComplete() *ExecComplete
- func (x *ExecOutput) GetExecFailed() *ExecFailed
- func (x *ExecOutput) GetOutput() isExecOutput_Output
- func (*ExecOutput) ProtoMessage()
- func (x *ExecOutput) ProtoReflect() protoreflect.Message
- func (x *ExecOutput) Reset()
- func (x *ExecOutput) String() string
- type ExecOutput_Data
- type ExecOutput_ExecComplete
- type ExecOutput_ExecFailed
- type ExecRequest
- func (*ExecRequest) Descriptor() ([]byte, []int)deprecated
- func (x *ExecRequest) GetCommand() []string
- func (x *ExecRequest) GetEnv() map[string]string
- func (x *ExecRequest) GetEnvironmentId() string
- func (x *ExecRequest) GetUser() string
- func (x *ExecRequest) GetWorkdir() string
- func (*ExecRequest) ProtoMessage()
- func (x *ExecRequest) ProtoReflect() protoreflect.Message
- func (x *ExecRequest) Reset()
- func (x *ExecRequest) String() string
- type RemoveRequest
- type RemoveResponse
- type ServiceContainer
- func (*ServiceContainer) Descriptor() ([]byte, []int)deprecated
- func (x *ServiceContainer) GetEnv() map[string]string
- func (x *ServiceContainer) GetImage() string
- func (x *ServiceContainer) GetName() string
- func (x *ServiceContainer) GetPorts() []string
- func (*ServiceContainer) ProtoMessage()
- func (x *ServiceContainer) ProtoReflect() protoreflect.Message
- func (x *ServiceContainer) Reset()
- func (x *ServiceContainer) String() string
- type StartComplete
- type StartOutput
- func (*StartOutput) Descriptor() ([]byte, []int)deprecated
- func (x *StartOutput) GetData() *DataChunk
- func (x *StartOutput) GetOutput() isStartOutput_Output
- func (x *StartOutput) GetStartComplete() *StartComplete
- func (*StartOutput) ProtoMessage()
- func (x *StartOutput) ProtoReflect() protoreflect.Message
- func (x *StartOutput) Reset()
- func (x *StartOutput) String() string
- type StartOutput_Data
- type StartOutput_StartComplete
- type StartRequest
- type UnimplementedBackendPluginServer
- func (UnimplementedBackendPluginServer) Capabilities(context.Context, *CapabilitiesRequest) (*CapabilitiesResponse, error)
- func (UnimplementedBackendPluginServer) CopyIn(grpc.ClientStreamingServer[CopyInChunk, CopyInResponse]) error
- func (UnimplementedBackendPluginServer) CopyOut(*CopyOutRequest, grpc.ServerStreamingServer[CopyOutChunk]) error
- func (UnimplementedBackendPluginServer) Create(context.Context, *CreateRequest) (*CreateResponse, error)
- func (UnimplementedBackendPluginServer) Exec(*ExecRequest, grpc.ServerStreamingServer[ExecOutput]) error
- func (UnimplementedBackendPluginServer) Remove(context.Context, *RemoveRequest) (*RemoveResponse, error)
- func (UnimplementedBackendPluginServer) Start(*StartRequest, grpc.ServerStreamingServer[StartOutput]) error
- type UnsafeBackendPluginServer
Constants ¶
const ( BackendPlugin_Capabilities_FullMethodName = "/plugin.v1alpha.BackendPlugin/Capabilities" BackendPlugin_Create_FullMethodName = "/plugin.v1alpha.BackendPlugin/Create" BackendPlugin_Start_FullMethodName = "/plugin.v1alpha.BackendPlugin/Start" BackendPlugin_Exec_FullMethodName = "/plugin.v1alpha.BackendPlugin/Exec" BackendPlugin_CopyIn_FullMethodName = "/plugin.v1alpha.BackendPlugin/CopyIn" BackendPlugin_CopyOut_FullMethodName = "/plugin.v1alpha.BackendPlugin/CopyOut" BackendPlugin_Remove_FullMethodName = "/plugin.v1alpha.BackendPlugin/Remove" )
Variables ¶
var ( DataChunk_Stream_name = map[int32]string{ 0: "STDOUT", 1: "STDERR", } DataChunk_Stream_value = map[string]int32{ "STDOUT": 0, "STDERR": 1, } )
Enum value maps for DataChunk_Stream.
var BackendPlugin_ServiceDesc = grpc.ServiceDesc{ ServiceName: "plugin.v1alpha.BackendPlugin", HandlerType: (*BackendPluginServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "Capabilities", Handler: _BackendPlugin_Capabilities_Handler, }, { MethodName: "Create", Handler: _BackendPlugin_Create_Handler, }, { MethodName: "Remove", Handler: _BackendPlugin_Remove_Handler, }, }, Streams: []grpc.StreamDesc{ { StreamName: "Start", Handler: _BackendPlugin_Start_Handler, ServerStreams: true, }, { StreamName: "Exec", Handler: _BackendPlugin_Exec_Handler, ServerStreams: true, }, { StreamName: "CopyIn", Handler: _BackendPlugin_CopyIn_Handler, ClientStreams: true, }, { StreamName: "CopyOut", Handler: _BackendPlugin_CopyOut_Handler, ServerStreams: true, }, }, Metadata: "act/plugin/proto/v1alpha/plugin.proto", }
BackendPlugin_ServiceDesc is the grpc.ServiceDesc for BackendPlugin service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
var File_act_plugin_proto_v1alpha_plugin_proto protoreflect.FileDescriptor
Functions ¶
func RegisterBackendPluginServer ¶
func RegisterBackendPluginServer(s grpc.ServiceRegistrar, srv BackendPluginServer)
Types ¶
type BackendPluginClient ¶
type BackendPluginClient interface {
// Capabilities returns the backend's identity, filesystem layout, and the one
// feature flag the runner needs. Called once at connection time.
Capabilities(ctx context.Context, in *CapabilitiesRequest, opts ...grpc.CallOption) (*CapabilitiesResponse, error)
// Create provisions a new execution environment. Service containers are
// passed here so the backend realises them however fits its platform.
Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error)
// Start boots a previously created environment.
//
// Start implementations should detect when the RPC stream is terminated
// externally before the command completes, as this will signal explicit job
// cancellation, or job timeout. When detected, the implementation should
// terminate the startup process on the environment. The Remove RPC for the
// environment will follow, even though the Start RPC did not complete.
Start(ctx context.Context, in *StartRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[StartOutput], error)
// Exec runs a command inside the environment, streaming stdout/stderr back.
//
// Exec implementations should detect when the RPC stream is terminated
// externally before the command completes, as this will signal explicit job
// cancellation, job timeout, or command timeout. When detected, the
// implementation should terminate the running command on the
// environment. Implementation should not rely on a failed write to the
// output stream as its cancellation signal as some commands produce
// infrequent output. (Implementation note: observing context cancellation in
// Go, a cancellation-aware select on the response channel in Rust's
// `tokio::sync::mspc::Sender::closed()`, or a server-side cancellation
// callback in Python/Java.)
Exec(ctx context.Context, in *ExecRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[ExecOutput], error)
// CopyIn transfers a tar archive into the environment.
CopyIn(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[CopyInChunk, CopyInResponse], error)
// CopyOut transfers a tar archive out of the environment. The runner reads
// env files (GITHUB_ENV/OUTPUT/STATE) back this way and parses them itself.
CopyOut(ctx context.Context, in *CopyOutRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[CopyOutChunk], error)
// Remove tears down the environment and releases its resources.
Remove(ctx context.Context, in *RemoveRequest, opts ...grpc.CallOption) (*RemoveResponse, error)
}
BackendPluginClient is the client API for BackendPlugin service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
BackendPlugin is the gRPC service a plugin server implements to run jobs in an execution environment it owns (a Kubernetes pod, a VM, ...). The runner connects to a standalone plugin server and drives the environment lifecycle through it. Plugin servers must also expose the standard grpc.health.v1 service.
For any given environment ID, the runner will not invoke a new RPC while a previous RPS for that environment is outstanding, with one exception: for streaming RPCs, the runner closes or cancels the stream and may immediately invoke a subsequent RPC (typically `Remove`). As teardown of a cancelled stream is not instantaneous, implementations may observe a subsequent RPC invoked while a previous streaming RPC's handler is still executing internally. This behaviour is expected. Exclusive locking of each environment during each RPC is recommended for most implementations to accomodate this, ensuring that a `Remove` operation and the last in-flight RPC operation (currently being cancelled) do not cause internal errors.
This is an alpha protocol: it may change in incompatible ways between releases. Errors are reported with gRPC status codes; the runner relies on NotFound (unknown environment_id) and InvalidArgument (malformed request), and treats Unavailable as the plugin being gone. The status message is shown in the job log; no structured error details are defined yet.
func NewBackendPluginClient ¶
func NewBackendPluginClient(cc grpc.ClientConnInterface) BackendPluginClient
type BackendPluginServer ¶
type BackendPluginServer interface {
// Capabilities returns the backend's identity, filesystem layout, and the one
// feature flag the runner needs. Called once at connection time.
Capabilities(context.Context, *CapabilitiesRequest) (*CapabilitiesResponse, error)
// Create provisions a new execution environment. Service containers are
// passed here so the backend realises them however fits its platform.
Create(context.Context, *CreateRequest) (*CreateResponse, error)
// Start boots a previously created environment.
//
// Start implementations should detect when the RPC stream is terminated
// externally before the command completes, as this will signal explicit job
// cancellation, or job timeout. When detected, the implementation should
// terminate the startup process on the environment. The Remove RPC for the
// environment will follow, even though the Start RPC did not complete.
Start(*StartRequest, grpc.ServerStreamingServer[StartOutput]) error
// Exec runs a command inside the environment, streaming stdout/stderr back.
//
// Exec implementations should detect when the RPC stream is terminated
// externally before the command completes, as this will signal explicit job
// cancellation, job timeout, or command timeout. When detected, the
// implementation should terminate the running command on the
// environment. Implementation should not rely on a failed write to the
// output stream as its cancellation signal as some commands produce
// infrequent output. (Implementation note: observing context cancellation in
// Go, a cancellation-aware select on the response channel in Rust's
// `tokio::sync::mspc::Sender::closed()`, or a server-side cancellation
// callback in Python/Java.)
Exec(*ExecRequest, grpc.ServerStreamingServer[ExecOutput]) error
// CopyIn transfers a tar archive into the environment.
CopyIn(grpc.ClientStreamingServer[CopyInChunk, CopyInResponse]) error
// CopyOut transfers a tar archive out of the environment. The runner reads
// env files (GITHUB_ENV/OUTPUT/STATE) back this way and parses them itself.
CopyOut(*CopyOutRequest, grpc.ServerStreamingServer[CopyOutChunk]) error
// Remove tears down the environment and releases its resources.
Remove(context.Context, *RemoveRequest) (*RemoveResponse, error)
// contains filtered or unexported methods
}
BackendPluginServer is the server API for BackendPlugin service. All implementations must embed UnimplementedBackendPluginServer for forward compatibility.
BackendPlugin is the gRPC service a plugin server implements to run jobs in an execution environment it owns (a Kubernetes pod, a VM, ...). The runner connects to a standalone plugin server and drives the environment lifecycle through it. Plugin servers must also expose the standard grpc.health.v1 service.
For any given environment ID, the runner will not invoke a new RPC while a previous RPS for that environment is outstanding, with one exception: for streaming RPCs, the runner closes or cancels the stream and may immediately invoke a subsequent RPC (typically `Remove`). As teardown of a cancelled stream is not instantaneous, implementations may observe a subsequent RPC invoked while a previous streaming RPC's handler is still executing internally. This behaviour is expected. Exclusive locking of each environment during each RPC is recommended for most implementations to accomodate this, ensuring that a `Remove` operation and the last in-flight RPC operation (currently being cancelled) do not cause internal errors.
This is an alpha protocol: it may change in incompatible ways between releases. Errors are reported with gRPC status codes; the runner relies on NotFound (unknown environment_id) and InvalidArgument (malformed request), and treats Unavailable as the plugin being gone. The status message is shown in the job log; no structured error details are defined yet.
type BackendPlugin_CopyInClient ¶
type BackendPlugin_CopyInClient = grpc.ClientStreamingClient[CopyInChunk, CopyInResponse]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type BackendPlugin_CopyInServer ¶
type BackendPlugin_CopyInServer = grpc.ClientStreamingServer[CopyInChunk, CopyInResponse]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type BackendPlugin_CopyOutClient ¶
type BackendPlugin_CopyOutClient = grpc.ServerStreamingClient[CopyOutChunk]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type BackendPlugin_CopyOutServer ¶
type BackendPlugin_CopyOutServer = grpc.ServerStreamingServer[CopyOutChunk]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type BackendPlugin_ExecClient ¶
type BackendPlugin_ExecClient = grpc.ServerStreamingClient[ExecOutput]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type BackendPlugin_ExecServer ¶
type BackendPlugin_ExecServer = grpc.ServerStreamingServer[ExecOutput]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type BackendPlugin_StartClient ¶
type BackendPlugin_StartClient = grpc.ServerStreamingClient[StartOutput]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type BackendPlugin_StartServer ¶
type BackendPlugin_StartServer = grpc.ServerStreamingServer[StartOutput]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type CapabilitiesRequest ¶
type CapabilitiesRequest struct {
// contains filtered or unexported fields
}
func (*CapabilitiesRequest) Descriptor
deprecated
func (*CapabilitiesRequest) Descriptor() ([]byte, []int)
Deprecated: Use CapabilitiesRequest.ProtoReflect.Descriptor instead.
func (*CapabilitiesRequest) ProtoMessage ¶
func (*CapabilitiesRequest) ProtoMessage()
func (*CapabilitiesRequest) ProtoReflect ¶
func (x *CapabilitiesRequest) ProtoReflect() protoreflect.Message
func (*CapabilitiesRequest) Reset ¶
func (x *CapabilitiesRequest) Reset()
func (*CapabilitiesRequest) String ¶
func (x *CapabilitiesRequest) String() string
type CapabilitiesResponse ¶
type CapabilitiesResponse struct {
// name identifies the backend (e.g. "kubernetes"); used in logs and as the
// container back-end name.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// contains filtered or unexported fields
}
func (*CapabilitiesResponse) Descriptor
deprecated
func (*CapabilitiesResponse) Descriptor() ([]byte, []int)
Deprecated: Use CapabilitiesResponse.ProtoReflect.Descriptor instead.
func (*CapabilitiesResponse) GetName ¶
func (x *CapabilitiesResponse) GetName() string
func (*CapabilitiesResponse) ProtoMessage ¶
func (*CapabilitiesResponse) ProtoMessage()
func (*CapabilitiesResponse) ProtoReflect ¶
func (x *CapabilitiesResponse) ProtoReflect() protoreflect.Message
func (*CapabilitiesResponse) Reset ¶
func (x *CapabilitiesResponse) Reset()
func (*CapabilitiesResponse) String ¶
func (x *CapabilitiesResponse) String() string
type CopyInChunk ¶
type CopyInChunk struct {
EnvironmentId *string `protobuf:"bytes,1,opt,name=environment_id,json=environmentId,proto3,oneof" json:"environment_id,omitempty"`
// dest_path is the directory the tar archive is extracted into. The plugin
// must ensure that the destination folder exists in the target environment
// before extracting the incoming data stream.
DestPath *string `protobuf:"bytes,2,opt,name=dest_path,json=destPath,proto3,oneof" json:"dest_path,omitempty"`
// data is a chunk of the tar archive.
Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
// contains filtered or unexported fields
}
CopyInChunk frames the client-streaming CopyIn RPC. The first chunk MUST set environment_id and dest_path; subsequent chunks carry only data. Servers MUST reject environment_id or dest_path on later chunks with codes.InvalidArgument.
func (*CopyInChunk) Descriptor
deprecated
func (*CopyInChunk) Descriptor() ([]byte, []int)
Deprecated: Use CopyInChunk.ProtoReflect.Descriptor instead.
func (*CopyInChunk) GetData ¶
func (x *CopyInChunk) GetData() []byte
func (*CopyInChunk) GetDestPath ¶
func (x *CopyInChunk) GetDestPath() string
func (*CopyInChunk) GetEnvironmentId ¶
func (x *CopyInChunk) GetEnvironmentId() string
func (*CopyInChunk) ProtoMessage ¶
func (*CopyInChunk) ProtoMessage()
func (*CopyInChunk) ProtoReflect ¶
func (x *CopyInChunk) ProtoReflect() protoreflect.Message
func (*CopyInChunk) Reset ¶
func (x *CopyInChunk) Reset()
func (*CopyInChunk) String ¶
func (x *CopyInChunk) String() string
type CopyInResponse ¶
type CopyInResponse struct {
// contains filtered or unexported fields
}
func (*CopyInResponse) Descriptor
deprecated
func (*CopyInResponse) Descriptor() ([]byte, []int)
Deprecated: Use CopyInResponse.ProtoReflect.Descriptor instead.
func (*CopyInResponse) ProtoMessage ¶
func (*CopyInResponse) ProtoMessage()
func (*CopyInResponse) ProtoReflect ¶
func (x *CopyInResponse) ProtoReflect() protoreflect.Message
func (*CopyInResponse) Reset ¶
func (x *CopyInResponse) Reset()
func (*CopyInResponse) String ¶
func (x *CopyInResponse) String() string
type CopyOutChunk ¶
type CopyOutChunk struct {
// data is a chunk of the tar archive.
Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
// contains filtered or unexported fields
}
func (*CopyOutChunk) Descriptor
deprecated
func (*CopyOutChunk) Descriptor() ([]byte, []int)
Deprecated: Use CopyOutChunk.ProtoReflect.Descriptor instead.
func (*CopyOutChunk) GetData ¶
func (x *CopyOutChunk) GetData() []byte
func (*CopyOutChunk) ProtoMessage ¶
func (*CopyOutChunk) ProtoMessage()
func (*CopyOutChunk) ProtoReflect ¶
func (x *CopyOutChunk) ProtoReflect() protoreflect.Message
func (*CopyOutChunk) Reset ¶
func (x *CopyOutChunk) Reset()
func (*CopyOutChunk) String ¶
func (x *CopyOutChunk) String() string
type CopyOutRequest ¶
type CopyOutRequest struct {
EnvironmentId string `protobuf:"bytes,1,opt,name=environment_id,json=environmentId,proto3" json:"environment_id,omitempty"`
// src_path is the path inside the environment to archive and stream out.
SrcPath string `protobuf:"bytes,2,opt,name=src_path,json=srcPath,proto3" json:"src_path,omitempty"`
// contains filtered or unexported fields
}
func (*CopyOutRequest) Descriptor
deprecated
func (*CopyOutRequest) Descriptor() ([]byte, []int)
Deprecated: Use CopyOutRequest.ProtoReflect.Descriptor instead.
func (*CopyOutRequest) GetEnvironmentId ¶
func (x *CopyOutRequest) GetEnvironmentId() string
func (*CopyOutRequest) GetSrcPath ¶
func (x *CopyOutRequest) GetSrcPath() string
func (*CopyOutRequest) ProtoMessage ¶
func (*CopyOutRequest) ProtoMessage()
func (*CopyOutRequest) ProtoReflect ¶
func (x *CopyOutRequest) ProtoReflect() protoreflect.Message
func (*CopyOutRequest) Reset ¶
func (x *CopyOutRequest) Reset()
func (*CopyOutRequest) String ¶
func (x *CopyOutRequest) String() string
type CreateRequest ¶
type CreateRequest struct {
// image is the backend-defined reference for the job container image, opaque
// to the protocol (a Docker image name, a VM template, ...).
Image string `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
// name is a runner-assigned handle for the environment, unique per job.
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
// cap_add / cap_drop are advisory Linux capability adjustments; backends that
// cannot apply them ignore them.
CapAdd []string `protobuf:"bytes,5,rep,name=cap_add,json=capAdd,proto3" json:"cap_add,omitempty"`
CapDrop []string `protobuf:"bytes,6,rep,name=cap_drop,json=capDrop,proto3" json:"cap_drop,omitempty"`
// services are the service containers to bring up alongside the job.
Services []*ServiceContainer `protobuf:"bytes,7,rep,name=services,proto3" json:"services,omitempty"`
// backend_options are opaque, backend-specific options taken verbatim from
// the runner's per-label plugin configuration (e.g. namespace, VM flavour).
BackendOptions map[string]string `` /* 177-byte string literal not displayed */
// label_arg is the optional suffix of the runs-on plugin label.
LabelArg string `protobuf:"bytes,9,opt,name=label_arg,json=labelArg,proto3" json:"label_arg,omitempty"`
// environment_timeout limits the lifetime of this execution environment.
EnvironmentTimeout *durationpb.Duration `protobuf:"bytes,10,opt,name=environment_timeout,json=environmentTimeout,proto3" json:"environment_timeout,omitempty"`
// contains filtered or unexported fields
}
func (*CreateRequest) Descriptor
deprecated
func (*CreateRequest) Descriptor() ([]byte, []int)
Deprecated: Use CreateRequest.ProtoReflect.Descriptor instead.
func (*CreateRequest) GetBackendOptions ¶
func (x *CreateRequest) GetBackendOptions() map[string]string
func (*CreateRequest) GetCapAdd ¶
func (x *CreateRequest) GetCapAdd() []string
func (*CreateRequest) GetCapDrop ¶
func (x *CreateRequest) GetCapDrop() []string
func (*CreateRequest) GetEnvironmentTimeout ¶
func (x *CreateRequest) GetEnvironmentTimeout() *durationpb.Duration
func (*CreateRequest) GetImage ¶
func (x *CreateRequest) GetImage() string
func (*CreateRequest) GetLabelArg ¶
func (x *CreateRequest) GetLabelArg() string
func (*CreateRequest) GetName ¶
func (x *CreateRequest) GetName() string
func (*CreateRequest) GetServices ¶
func (x *CreateRequest) GetServices() []*ServiceContainer
func (*CreateRequest) ProtoMessage ¶
func (*CreateRequest) ProtoMessage()
func (*CreateRequest) ProtoReflect ¶
func (x *CreateRequest) ProtoReflect() protoreflect.Message
func (*CreateRequest) Reset ¶
func (x *CreateRequest) Reset()
func (*CreateRequest) String ¶
func (x *CreateRequest) String() string
type CreateResponse ¶
type CreateResponse struct {
// environment_id is the handle for all later RPCs targeting this environment.
EnvironmentId string `protobuf:"bytes,1,opt,name=environment_id,json=environmentId,proto3" json:"environment_id,omitempty"`
// root_path is the base directory the runner lays workflow files out
// under.
RootPath string `protobuf:"bytes,2,opt,name=root_path,json=rootPath,proto3" json:"root_path,omitempty"`
// act_path is the directory where the runner stages its helper binaries and
// action code.
ActPath string `protobuf:"bytes,3,opt,name=act_path,json=actPath,proto3" json:"act_path,omitempty"`
// tool_cache_path is exposed to jobs as RUNNER_TOOL_CACHE.
ToolCachePath string `protobuf:"bytes,4,opt,name=tool_cache_path,json=toolCachePath,proto3" json:"tool_cache_path,omitempty"`
// temp_path is exposed to jobs as RUNNER_TEMP.
TempPath string `protobuf:"bytes,5,opt,name=temp_path,json=tempPath,proto3" json:"temp_path,omitempty"`
// path_variable_name is the search-path environment variable; the runner uses
// "PATH" when unset.
PathVariableName *string `protobuf:"bytes,6,opt,name=path_variable_name,json=pathVariableName,proto3,oneof" json:"path_variable_name,omitempty"`
// default_path_variable is the search path used when a job sets none.
DefaultPathVariable *string `` /* 126-byte string literal not displayed */
// path_separator joins path entries; the runner uses ":" when unset.
PathSeparator *string `protobuf:"bytes,8,opt,name=path_separator,json=pathSeparator,proto3,oneof" json:"path_separator,omitempty"`
// environment_case_insensitive marks environments whose variable names are
// case-insensitive (Windows), so the runner de-duplicates accordingly.
EnvironmentCaseInsensitive bool `` /* 142-byte string literal not displayed */
// os populates the RUNNER_OS environment variable exposed to the job.
Os string `protobuf:"bytes,10,opt,name=os,proto3" json:"os,omitempty"`
// arch populates the RUNNER_ARCH environment variable exposed to the job.
Arch string `protobuf:"bytes,11,opt,name=arch,proto3" json:"arch,omitempty"`
// contains filtered or unexported fields
}
func (*CreateResponse) Descriptor
deprecated
func (*CreateResponse) Descriptor() ([]byte, []int)
Deprecated: Use CreateResponse.ProtoReflect.Descriptor instead.
func (*CreateResponse) GetActPath ¶
func (x *CreateResponse) GetActPath() string
func (*CreateResponse) GetArch ¶
func (x *CreateResponse) GetArch() string
func (*CreateResponse) GetDefaultPathVariable ¶
func (x *CreateResponse) GetDefaultPathVariable() string
func (*CreateResponse) GetEnvironmentCaseInsensitive ¶
func (x *CreateResponse) GetEnvironmentCaseInsensitive() bool
func (*CreateResponse) GetEnvironmentId ¶
func (x *CreateResponse) GetEnvironmentId() string
func (*CreateResponse) GetOs ¶
func (x *CreateResponse) GetOs() string
func (*CreateResponse) GetPathSeparator ¶
func (x *CreateResponse) GetPathSeparator() string
func (*CreateResponse) GetPathVariableName ¶
func (x *CreateResponse) GetPathVariableName() string
func (*CreateResponse) GetRootPath ¶
func (x *CreateResponse) GetRootPath() string
func (*CreateResponse) GetTempPath ¶
func (x *CreateResponse) GetTempPath() string
func (*CreateResponse) GetToolCachePath ¶
func (x *CreateResponse) GetToolCachePath() string
func (*CreateResponse) ProtoMessage ¶
func (*CreateResponse) ProtoMessage()
func (*CreateResponse) ProtoReflect ¶
func (x *CreateResponse) ProtoReflect() protoreflect.Message
func (*CreateResponse) Reset ¶
func (x *CreateResponse) Reset()
func (*CreateResponse) String ¶
func (x *CreateResponse) String() string
type DataChunk ¶
type DataChunk struct {
// stream identifies which output data belongs to.
Stream DataChunk_Stream `protobuf:"varint,1,opt,name=stream,proto3,enum=plugin.v1alpha.DataChunk_Stream" json:"stream,omitempty"`
// data is a chunk of output bytes.
Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
// contains filtered or unexported fields
}
func (*DataChunk) Descriptor
deprecated
func (*DataChunk) GetStream ¶
func (x *DataChunk) GetStream() DataChunk_Stream
func (*DataChunk) ProtoMessage ¶
func (*DataChunk) ProtoMessage()
func (*DataChunk) ProtoReflect ¶
func (x *DataChunk) ProtoReflect() protoreflect.Message
type DataChunk_Stream ¶
type DataChunk_Stream int32
const ( DataChunk_STDOUT DataChunk_Stream = 0 DataChunk_STDERR DataChunk_Stream = 1 )
func (DataChunk_Stream) Descriptor ¶
func (DataChunk_Stream) Descriptor() protoreflect.EnumDescriptor
func (DataChunk_Stream) Enum ¶
func (x DataChunk_Stream) Enum() *DataChunk_Stream
func (DataChunk_Stream) EnumDescriptor
deprecated
func (DataChunk_Stream) EnumDescriptor() ([]byte, []int)
Deprecated: Use DataChunk_Stream.Descriptor instead.
func (DataChunk_Stream) Number ¶
func (x DataChunk_Stream) Number() protoreflect.EnumNumber
func (DataChunk_Stream) String ¶
func (x DataChunk_Stream) String() string
func (DataChunk_Stream) Type ¶
func (DataChunk_Stream) Type() protoreflect.EnumType
type ExecComplete ¶
type ExecComplete struct {
// exit_code is the command's exit status; only set on the final message.
ExitCode int32 `protobuf:"varint,1,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
// contains filtered or unexported fields
}
func (*ExecComplete) Descriptor
deprecated
func (*ExecComplete) Descriptor() ([]byte, []int)
Deprecated: Use ExecComplete.ProtoReflect.Descriptor instead.
func (*ExecComplete) GetExitCode ¶
func (x *ExecComplete) GetExitCode() int32
func (*ExecComplete) ProtoMessage ¶
func (*ExecComplete) ProtoMessage()
func (*ExecComplete) ProtoReflect ¶
func (x *ExecComplete) ProtoReflect() protoreflect.Message
func (*ExecComplete) Reset ¶
func (x *ExecComplete) Reset()
func (*ExecComplete) String ¶
func (x *ExecComplete) String() string
type ExecFailed ¶
type ExecFailed struct {
// error_message describes a failure to run the command (as opposed to the
// command failing); only set on the final message.
ErrorMessage string `protobuf:"bytes,1,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
// contains filtered or unexported fields
}
func (*ExecFailed) Descriptor
deprecated
func (*ExecFailed) Descriptor() ([]byte, []int)
Deprecated: Use ExecFailed.ProtoReflect.Descriptor instead.
func (*ExecFailed) GetErrorMessage ¶
func (x *ExecFailed) GetErrorMessage() string
func (*ExecFailed) ProtoMessage ¶
func (*ExecFailed) ProtoMessage()
func (*ExecFailed) ProtoReflect ¶
func (x *ExecFailed) ProtoReflect() protoreflect.Message
func (*ExecFailed) Reset ¶
func (x *ExecFailed) Reset()
func (*ExecFailed) String ¶
func (x *ExecFailed) String() string
type ExecOutput ¶
type ExecOutput struct {
// Types that are valid to be assigned to Output:
//
// *ExecOutput_Data
// *ExecOutput_ExecComplete
// *ExecOutput_ExecFailed
Output isExecOutput_Output `protobuf_oneof:"Output"`
// contains filtered or unexported fields
}
func (*ExecOutput) Descriptor
deprecated
func (*ExecOutput) Descriptor() ([]byte, []int)
Deprecated: Use ExecOutput.ProtoReflect.Descriptor instead.
func (*ExecOutput) GetData ¶
func (x *ExecOutput) GetData() *DataChunk
func (*ExecOutput) GetExecComplete ¶
func (x *ExecOutput) GetExecComplete() *ExecComplete
func (*ExecOutput) GetExecFailed ¶
func (x *ExecOutput) GetExecFailed() *ExecFailed
func (*ExecOutput) GetOutput ¶
func (x *ExecOutput) GetOutput() isExecOutput_Output
func (*ExecOutput) ProtoMessage ¶
func (*ExecOutput) ProtoMessage()
func (*ExecOutput) ProtoReflect ¶
func (x *ExecOutput) ProtoReflect() protoreflect.Message
func (*ExecOutput) Reset ¶
func (x *ExecOutput) Reset()
func (*ExecOutput) String ¶
func (x *ExecOutput) String() string
type ExecOutput_Data ¶
type ExecOutput_Data struct {
Data *DataChunk `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}
type ExecOutput_ExecComplete ¶
type ExecOutput_ExecComplete struct {
ExecComplete *ExecComplete `protobuf:"bytes,2,opt,name=exec_complete,json=execComplete,proto3,oneof"`
}
type ExecOutput_ExecFailed ¶
type ExecOutput_ExecFailed struct {
ExecFailed *ExecFailed `protobuf:"bytes,3,opt,name=exec_failed,json=execFailed,proto3,oneof"`
}
type ExecRequest ¶
type ExecRequest struct {
EnvironmentId string `protobuf:"bytes,1,opt,name=environment_id,json=environmentId,proto3" json:"environment_id,omitempty"`
// command is the argv to run; command[0] is the executable.
Command []string `protobuf:"bytes,2,rep,name=command,proto3" json:"command,omitempty"`
// env are environment variables to set for this command.
Env map[string]string `` /* 133-byte string literal not displayed */
// user is the user to run as; the backend's default is used when unset.
User *string `protobuf:"bytes,4,opt,name=user,proto3,oneof" json:"user,omitempty"`
// workdir overrides the working directory for this command; the environment's
// default is used when unset.
Workdir string `protobuf:"bytes,5,opt,name=workdir,proto3" json:"workdir,omitempty"`
// contains filtered or unexported fields
}
func (*ExecRequest) Descriptor
deprecated
func (*ExecRequest) Descriptor() ([]byte, []int)
Deprecated: Use ExecRequest.ProtoReflect.Descriptor instead.
func (*ExecRequest) GetCommand ¶
func (x *ExecRequest) GetCommand() []string
func (*ExecRequest) GetEnv ¶
func (x *ExecRequest) GetEnv() map[string]string
func (*ExecRequest) GetEnvironmentId ¶
func (x *ExecRequest) GetEnvironmentId() string
func (*ExecRequest) GetUser ¶
func (x *ExecRequest) GetUser() string
func (*ExecRequest) GetWorkdir ¶
func (x *ExecRequest) GetWorkdir() string
func (*ExecRequest) ProtoMessage ¶
func (*ExecRequest) ProtoMessage()
func (*ExecRequest) ProtoReflect ¶
func (x *ExecRequest) ProtoReflect() protoreflect.Message
func (*ExecRequest) Reset ¶
func (x *ExecRequest) Reset()
func (*ExecRequest) String ¶
func (x *ExecRequest) String() string
type RemoveRequest ¶
type RemoveRequest struct {
EnvironmentId string `protobuf:"bytes,1,opt,name=environment_id,json=environmentId,proto3" json:"environment_id,omitempty"`
// contains filtered or unexported fields
}
func (*RemoveRequest) Descriptor
deprecated
func (*RemoveRequest) Descriptor() ([]byte, []int)
Deprecated: Use RemoveRequest.ProtoReflect.Descriptor instead.
func (*RemoveRequest) GetEnvironmentId ¶
func (x *RemoveRequest) GetEnvironmentId() string
func (*RemoveRequest) ProtoMessage ¶
func (*RemoveRequest) ProtoMessage()
func (*RemoveRequest) ProtoReflect ¶
func (x *RemoveRequest) ProtoReflect() protoreflect.Message
func (*RemoveRequest) Reset ¶
func (x *RemoveRequest) Reset()
func (*RemoveRequest) String ¶
func (x *RemoveRequest) String() string
type RemoveResponse ¶
type RemoveResponse struct {
// contains filtered or unexported fields
}
func (*RemoveResponse) Descriptor
deprecated
func (*RemoveResponse) Descriptor() ([]byte, []int)
Deprecated: Use RemoveResponse.ProtoReflect.Descriptor instead.
func (*RemoveResponse) ProtoMessage ¶
func (*RemoveResponse) ProtoMessage()
func (*RemoveResponse) ProtoReflect ¶
func (x *RemoveResponse) ProtoReflect() protoreflect.Message
func (*RemoveResponse) Reset ¶
func (x *RemoveResponse) Reset()
func (*RemoveResponse) String ¶
func (x *RemoveResponse) String() string
type ServiceContainer ¶
type ServiceContainer struct {
// name is the service ID from the workflow `services:` block.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// image is the backend-defined image reference for the service.
Image string `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"`
// env are the service container's environment variables.
Env map[string]string `` /* 133-byte string literal not displayed */
// ports are host:container port mappings requested for the service.
Ports []string `protobuf:"bytes,4,rep,name=ports,proto3" json:"ports,omitempty"`
// contains filtered or unexported fields
}
func (*ServiceContainer) Descriptor
deprecated
func (*ServiceContainer) Descriptor() ([]byte, []int)
Deprecated: Use ServiceContainer.ProtoReflect.Descriptor instead.
func (*ServiceContainer) GetEnv ¶
func (x *ServiceContainer) GetEnv() map[string]string
func (*ServiceContainer) GetImage ¶
func (x *ServiceContainer) GetImage() string
func (*ServiceContainer) GetName ¶
func (x *ServiceContainer) GetName() string
func (*ServiceContainer) GetPorts ¶
func (x *ServiceContainer) GetPorts() []string
func (*ServiceContainer) ProtoMessage ¶
func (*ServiceContainer) ProtoMessage()
func (*ServiceContainer) ProtoReflect ¶
func (x *ServiceContainer) ProtoReflect() protoreflect.Message
func (*ServiceContainer) Reset ¶
func (x *ServiceContainer) Reset()
func (*ServiceContainer) String ¶
func (x *ServiceContainer) String() string
type StartComplete ¶
type StartComplete struct {
// image_env are environment variables baked into the resolved image (e.g. a
// Docker image's ENV). The runner layers them under the job's own variables.
ImageEnv map[string]string `` /* 159-byte string literal not displayed */
// contains filtered or unexported fields
}
func (*StartComplete) Descriptor
deprecated
func (*StartComplete) Descriptor() ([]byte, []int)
Deprecated: Use StartComplete.ProtoReflect.Descriptor instead.
func (*StartComplete) GetImageEnv ¶
func (x *StartComplete) GetImageEnv() map[string]string
func (*StartComplete) ProtoMessage ¶
func (*StartComplete) ProtoMessage()
func (*StartComplete) ProtoReflect ¶
func (x *StartComplete) ProtoReflect() protoreflect.Message
func (*StartComplete) Reset ¶
func (x *StartComplete) Reset()
func (*StartComplete) String ¶
func (x *StartComplete) String() string
type StartOutput ¶
type StartOutput struct {
// Types that are valid to be assigned to Output:
//
// *StartOutput_Data
// *StartOutput_StartComplete
Output isStartOutput_Output `protobuf_oneof:"Output"`
// contains filtered or unexported fields
}
func (*StartOutput) Descriptor
deprecated
func (*StartOutput) Descriptor() ([]byte, []int)
Deprecated: Use StartOutput.ProtoReflect.Descriptor instead.
func (*StartOutput) GetData ¶
func (x *StartOutput) GetData() *DataChunk
func (*StartOutput) GetOutput ¶
func (x *StartOutput) GetOutput() isStartOutput_Output
func (*StartOutput) GetStartComplete ¶
func (x *StartOutput) GetStartComplete() *StartComplete
func (*StartOutput) ProtoMessage ¶
func (*StartOutput) ProtoMessage()
func (*StartOutput) ProtoReflect ¶
func (x *StartOutput) ProtoReflect() protoreflect.Message
func (*StartOutput) Reset ¶
func (x *StartOutput) Reset()
func (*StartOutput) String ¶
func (x *StartOutput) String() string
type StartOutput_Data ¶
type StartOutput_Data struct {
Data *DataChunk `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}
type StartOutput_StartComplete ¶
type StartOutput_StartComplete struct {
StartComplete *StartComplete `protobuf:"bytes,2,opt,name=start_complete,json=startComplete,proto3,oneof"`
}
type StartRequest ¶
type StartRequest struct {
EnvironmentId string `protobuf:"bytes,1,opt,name=environment_id,json=environmentId,proto3" json:"environment_id,omitempty"`
// contains filtered or unexported fields
}
func (*StartRequest) Descriptor
deprecated
func (*StartRequest) Descriptor() ([]byte, []int)
Deprecated: Use StartRequest.ProtoReflect.Descriptor instead.
func (*StartRequest) GetEnvironmentId ¶
func (x *StartRequest) GetEnvironmentId() string
func (*StartRequest) ProtoMessage ¶
func (*StartRequest) ProtoMessage()
func (*StartRequest) ProtoReflect ¶
func (x *StartRequest) ProtoReflect() protoreflect.Message
func (*StartRequest) Reset ¶
func (x *StartRequest) Reset()
func (*StartRequest) String ¶
func (x *StartRequest) String() string
type UnimplementedBackendPluginServer ¶
type UnimplementedBackendPluginServer struct{}
UnimplementedBackendPluginServer must be embedded to have forward compatible implementations.
NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.
func (UnimplementedBackendPluginServer) Capabilities ¶
func (UnimplementedBackendPluginServer) Capabilities(context.Context, *CapabilitiesRequest) (*CapabilitiesResponse, error)
func (UnimplementedBackendPluginServer) CopyIn ¶
func (UnimplementedBackendPluginServer) CopyIn(grpc.ClientStreamingServer[CopyInChunk, CopyInResponse]) error
func (UnimplementedBackendPluginServer) CopyOut ¶
func (UnimplementedBackendPluginServer) CopyOut(*CopyOutRequest, grpc.ServerStreamingServer[CopyOutChunk]) error
func (UnimplementedBackendPluginServer) Create ¶
func (UnimplementedBackendPluginServer) Create(context.Context, *CreateRequest) (*CreateResponse, error)
func (UnimplementedBackendPluginServer) Exec ¶
func (UnimplementedBackendPluginServer) Exec(*ExecRequest, grpc.ServerStreamingServer[ExecOutput]) error
func (UnimplementedBackendPluginServer) Remove ¶
func (UnimplementedBackendPluginServer) Remove(context.Context, *RemoveRequest) (*RemoveResponse, error)
func (UnimplementedBackendPluginServer) Start ¶
func (UnimplementedBackendPluginServer) Start(*StartRequest, grpc.ServerStreamingServer[StartOutput]) error
type UnsafeBackendPluginServer ¶
type UnsafeBackendPluginServer interface {
// contains filtered or unexported methods
}
UnsafeBackendPluginServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to BackendPluginServer will result in compilation errors.