runner

package
v0.22.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 25, 2026 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EnvironmentValueSourceLiteral = "literal"
	EnvironmentValueSourceSecret  = "secret"
)
View Source
const (
	ExecutionMetadataBrokerTaskID = "runner_broker_task_id"
	ExecutionMetadataTaskLog      = "runner_task_log"
)
View Source
const (
	PassedOutputChannel     = "passed"
	FailedOutputChannel     = "failed"
	RunnerFinishedEventType = "runner.finished"
)
View Source
const (
	ExecutionModeHost   = "host"
	ExecutionModeDocker = "docker"

	// DockerImagePresetCustom selects the free-text docker_image field instead of a quick-pick ref.
	DockerImagePresetCustom = "custom"

	// DefaultExecutionTimeoutSeconds is the wall-clock limit when a node omits execution_timeout_seconds.
	DefaultExecutionTimeoutSeconds = 3600 // 1 hour
)

Execution modes accepted by the task broker / fleet manager (lowercase JSON).

Variables

This section is empty.

Functions

This section is empty.

Types

type ActiveTask added in v0.22.0

type ActiveTask struct {
	ID                      string     `json:"id"`
	Status                  string     `json:"status"`
	FleetID                 string     `json:"fleet_id"`
	CreatedAt               time.Time  `json:"created_at"`
	ClaimedAt               *time.Time `json:"claimed_at,omitempty"`
	LeaseUntil              *time.Time `json:"lease_until,omitempty"`
	RunnerID                string     `json:"runner_id,omitempty"`
	ExecutionMode           string     `json:"execution_mode,omitempty"`
	DockerImage             string     `json:"docker_image,omitempty"`
	CancelRequested         bool       `json:"cancel_requested,omitempty"`
	ExecutionTimeoutSeconds *int       `json:"execution_timeout_seconds,omitempty"`
}

ActiveTask is a non-terminal task from GET /v1/tasks on the task broker.

type BrokerClient

type BrokerClient struct {
	// contains filtered or unexported fields
}

func NewBrokerClient

func NewBrokerClient(httpClient core.HTTPContext) (*BrokerClient, error)

func (*BrokerClient) CancelTask added in v0.22.0

func (b *BrokerClient) CancelTask(brokerTaskID string) error

func (*BrokerClient) CreateTask

func (b *BrokerClient) CreateTask(p CreateTaskParams) (string, error)

func (*BrokerClient) FetchTaskStatus

func (b *BrokerClient) FetchTaskStatus(taskID string) (*Task, error)

func (*BrokerClient) ListActiveTasks added in v0.22.0

func (b *BrokerClient) ListActiveTasks() ([]ActiveTask, error)

func (*BrokerClient) ProcessWebhook

func (b *BrokerClient) ProcessWebhook(body []byte) (*Task, error)

type BrokerEnvironmentVariable

type BrokerEnvironmentVariable struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

BrokerEnvironmentVariable is forwarded to the task broker as JSON.

type CreateTaskParams

type CreateTaskParams struct {
	Commands       []string
	WebhookURL     string
	Environment    []BrokerEnvironmentVariable
	ExecutionMode  string
	DockerImage    string
	TimeoutSeconds int // 0 = DefaultExecutionTimeoutSeconds
}

CreateTaskParams is forwarded to the task broker POST /v1/tasks.

type EnvironmentVariable

type EnvironmentVariable struct {
	Name        string                     `json:"name" mapstructure:"name"`
	ValueSource string                     `json:"valueSource" mapstructure:"valueSource"`
	Value       *string                    `json:"value,omitempty" mapstructure:"value"`
	Secret      configuration.SecretKeyRef `json:"secret,omitempty" mapstructure:"secret"`
}

EnvironmentVariable is one row in the Runner "Environment variables" list.

type Runner

type Runner struct{}

func (*Runner) Cancel

func (c *Runner) Cancel(ctx core.ExecutionContext) error

func (*Runner) Cleanup

func (c *Runner) Cleanup(ctx core.SetupContext) error

func (*Runner) Color

func (c *Runner) Color() string

func (*Runner) Configuration

func (c *Runner) Configuration() []configuration.Field

func (*Runner) Description

func (c *Runner) Description() string

func (*Runner) Documentation

func (c *Runner) Documentation() string

func (*Runner) ExampleOutput

func (c *Runner) ExampleOutput() map[string]any

func (*Runner) Execute

func (c *Runner) Execute(ctx core.ExecutionContext) error

func (*Runner) HandleHook

func (c *Runner) HandleHook(ctx core.ActionHookContext) error

func (*Runner) HandleWebhook

func (c *Runner) HandleWebhook(ctx core.WebhookRequestContext) (int, *core.WebhookResponseBody, error)

func (*Runner) Hooks

func (c *Runner) Hooks() []core.Hook

func (*Runner) Icon

func (c *Runner) Icon() string

func (*Runner) Label

func (c *Runner) Label() string

func (*Runner) Name

func (c *Runner) Name() string

func (*Runner) OutputChannels

func (c *Runner) OutputChannels(configuration any) []core.OutputChannel

func (*Runner) ProcessQueueItem

func (c *Runner) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)

func (*Runner) Setup

func (c *Runner) Setup(ctx core.SetupContext) error

type Spec

type Spec struct {
	Commands                string                `mapstructure:"commands"`
	Environment             []EnvironmentVariable `mapstructure:"environment"`
	ExecutionMode           string                `mapstructure:"execution_mode"`
	DockerImagePreset       string                `mapstructure:"docker_image_preset"`
	DockerImage             string                `mapstructure:"docker_image"`
	ExecutionTimeoutSeconds int                   `mapstructure:"execution_timeout_seconds"` // 0 = DefaultExecutionTimeoutSeconds
}

Spec is persisted Runner node configuration.

type Task

type Task struct {
	TaskID   string          `json:"task_id"`
	Status   string          `json:"status"`
	ExitCode *int            `json:"exit_code,omitempty"`
	Output   string          `json:"output,omitempty"`
	Error    string          `json:"error,omitempty"`
	Result   json.RawMessage `json:"result,omitempty"`

	TaskLog *TaskLogSink `json:"task_log,omitempty"`

	CloudWatchLogGroup  string `json:"cloudwatch_log_group,omitempty"`
	CloudWatchLogStream string `json:"cloudwatch_log_stream,omitempty"`
}

Task is the broker task payload (GET /v1/tasks/:id and webhook body).

func (*Task) IsInTerminalState

func (t *Task) IsInTerminalState() bool

type TaskLogSink

type TaskLogSink struct {
	Type       string `json:"type"`
	CloudWatch *struct {
		LogGroupName  string `json:"log_group_name"`
		LogStreamName string `json:"log_stream_name"`
		Region        string `json:"region,omitempty"`
	} `json:"cloudwatch,omitempty"`
}

TaskLogSink matches the task-broker / fleet-manager JSON shape for CloudWatch-backed live logs.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL