Skip to main content

StepRunner

Trait StepRunner 

Source
pub trait StepRunner:
    Send
    + Sync
    + Debug {
    // Required methods
    fn name(&self) -> &str;
    fn execute(
        &self,
        ctx: &RunContext,
        input: ExecutorInput,
    ) -> Pin<Box<dyn Future<Output = Result<StepResult>> + Send + '_>>;
}
Expand description

Async trait implemented by step executors (e.g. the Docker runner).

Each runner is identified by a string Self::name that pipeline authors reference in their step definitions.

The execute method returns a boxed future so the trait remains dyn-compatible (async fn in trait is not object-safe).

Required Methods§

Source

fn name(&self) -> &str

Unique name for this runner (e.g. "docker").

Source

fn execute( &self, ctx: &RunContext, input: ExecutorInput, ) -> Pin<Box<dyn Future<Output = Result<StepResult>> + Send + '_>>

Execute a single pipeline step.

§Errors

Implementations should return Err for infrastructure failures (container boot failure, network error, etc.). A non-zero exit code from the user command is not an error — it is reported via StepResult::exit_code.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§