Documentation
¶
Index ¶
- Constants
- func Main[T any](exec ...Executor)
- type Command
- type DependsOn
- type Display
- func (Display) Execute(ctx context.Context, rb *Runbook, opts RunOptions) bool
- func (Display) Preview(ctx context.Context, rb *Runbook, opts RunOptions) bool
- func (Display) Rollback(ctx context.Context, rb *Runbook, opts RunOptions, runID string) bool
- func (Display) Validate(ctx context.Context, rb *Runbook, opts RunOptions) bool
- type Do
- type EnvVar
- type Executor
- type Options
- type Pkg
- type PkgSource
- type PreviewResult
- type PreviewTaskResult
- type RollbackResult
- type RunOptions
- type RunRecord
- type RunResult
- type RunStatus
- type Runbook
- func (rb *Runbook) Env(vars ...*EnvVar) *Runbook
- func (rb *Runbook) Name() string
- func (rb *Runbook) Preview(ctx context.Context, opts RunOptions) *PreviewResult
- func (rb *Runbook) Rollback(ctx context.Context, opts RunOptions, runID string) RollbackResult
- func (rb *Runbook) Run(ctx context.Context, opts RunOptions) RunResult
- func (rb *Runbook) Stages() ([][]*Task, map[*Task][]*Task, error)
- func (r *Runbook) Task(name string, opts ...TaskOption) *Task
- func (rb *Runbook) Use(name string, sources ...PkgSource) *Runbook
- func (rb *Runbook) Validate(ctx context.Context) *ValidateResult
- type Task
- type TaskEvent
- type TaskOption
- type TaskRecord
- type TaskResult
- type TaskStatus
- type Undo
- type ValidateResult
Constants ¶
View Source
const ( StateFile = "orc.state.json" HistoryFile = ".orc/runs.ndjson" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Display ¶
type Display struct{}
Display is the bubbletea-based TUI executor. Pass it to Main to enable the rich interactive run/preview/validate/rollback experience.
type PkgSource ¶
type PreviewResult ¶
type PreviewResult struct {
Stages [][]*Task
Tasks map[string]PreviewTaskResult
Errors []error
}
type PreviewTaskResult ¶
type PreviewTaskResult struct {
Status TaskStatus
Err error
}
type RollbackResult ¶
type RollbackResult struct {
Completed bool
Tasks map[string]TaskResult
Errors []error
}
type RunOptions ¶
type RunRecord ¶
type RunRecord struct {
ID string `json:"id"`
Version int `json:"version"`
Runbook string `json:"runbook"`
Plan string `json:"plan"`
Commit string `json:"commit"`
Started time.Time `json:"started"`
Finished time.Time `json:"finished"`
Duration time.Duration `json:"duration"`
Status RunStatus `json:"status"`
Tasks map[string]TaskRecord `json:"tasks"`
}
func LoadHistory ¶
func LoadRecord ¶
func LoadRecordByID ¶
type Runbook ¶
type Runbook struct {
// contains filtered or unexported fields
}
func (*Runbook) Preview ¶
func (rb *Runbook) Preview(ctx context.Context, opts RunOptions) *PreviewResult
func (*Runbook) Rollback ¶
func (rb *Runbook) Rollback(ctx context.Context, opts RunOptions, runID string) RollbackResult
type Task ¶
type Task struct {
// contains filtered or unexported fields
}
func (*Task) UndoClauses ¶
type TaskEvent ¶
type TaskEvent struct {
Task *Task
Status TaskStatus
Err error
Duration time.Duration
}
type TaskOption ¶
type TaskOption interface {
// contains filtered or unexported methods
}
type TaskRecord ¶
type TaskResult ¶
type TaskStatus ¶
type TaskStatus string
const ( StatusPending TaskStatus = "pending" StatusBlocked TaskStatus = "blocked" StatusReady TaskStatus = "ready" StatusRunning TaskStatus = "running" StatusSatisfied TaskStatus = "satisfied" StatusSucceeded TaskStatus = "succeeded" StatusConfirmFailed TaskStatus = "confirm_failed" StatusSkipped TaskStatus = "skipped" StatusCancelled TaskStatus = "cancelled" StatusFailed TaskStatus = "failed" )
func (TaskStatus) IsComplete ¶
func (s TaskStatus) IsComplete() bool
func (TaskStatus) IsTerminal ¶
func (s TaskStatus) IsTerminal() bool
type ValidateResult ¶
type ValidateResult struct {
Errors []error
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.