Expand description
Pluggable CI execution backends for hm run.
§Design
The pluggable boundary is the whole build, not a single step.
ExecutionBackend::start accepts a RunRequest and returns a
BackendHandle. Calling BackendHandle::into_parts splits the handle
into:
- An
EventStreamofhm_plugin_protocol::events::BuildEvents — hand this tohm-renderfor terminal output. - A
Controlstruct withcancel()(Ctrl-C) andwait()(terminal outcome).
§Backends
LocalBackend— runs the build in-process using a DAG scheduler that executes each step inside a lightweight VM via thehm-vmsubsystem (ahm_vm::VmBackend+ snapshot registry; Docker is one such backend).CloudBackend— submits the build to the Harmont cloud and watches it over the REST SDK, emitting the sameBuildEventstream.
§Auth
This crate never reads credentials from disk. The caller constructs a
HarmontClient and injects it; hm owns credential loading.
Re-exports§
pub use local::LocalBackend;pub use cloud::CloudBackend;
Modules§
Structs§
- Backend
Handle - A running build: an event stream to render + a control half (cancel/wait).
- Build
Outcome - The terminal result of a build.
- Build
Ref - Stable identity for a build, shared by
BuildAcceptedandhm_exec::BuildOutcome. Local builds have arun_idonly; cloud builds also havenumber/org. - Capabilities
- Control
- The control half of a running build: cancel + await the outcome.
- Plan
- A rendered, ready-to-run pipeline.
- RunOptions
- Per-run execution options threaded through from the CLI flags.
- RunRequest
- All inputs needed to start a build on any
crate::ExecutionBackend. - Source
Meta - Git metadata for the worktree being submitted.
- Step
Result Summary
Enums§
- Backend
Error - A backend failure returned across the
ExecutionBackendboundary. - Build
Status - Headline verdict. The CLI projects this to a process exit code; the int is a CLI-local concern, NOT the contract.
- Step
Status
Traits§
- Execution
Backend - A pluggable execution backend. The boundary is the WHOLE build.
Type Aliases§
- Event
Stream - Type alias for the boxed event stream yielded by
BackendHandle::into_parts. - Result