Files
bahdotsh 5ac563d213 Release 0.8.0
wrkflw@0.8.0
wrkflw-evaluator@0.8.0
wrkflw-executor@0.8.0
wrkflw-github@0.8.0
wrkflw-gitlab@0.8.0
wrkflw-logging@0.8.0
wrkflw-matrix@0.8.0
wrkflw-models@0.8.0
wrkflw-parser@0.8.0
wrkflw-runtime@0.8.0
wrkflw-secrets@0.8.0
wrkflw-trigger-filter@0.8.0
wrkflw-ui@0.8.0
wrkflw-utils@0.8.0
wrkflw-validators@0.8.0
wrkflw-watcher@0.8.0

Generated by cargo-workspaces
2026-04-22 00:22:41 +05:30
..
2026-04-22 00:22:41 +05:30

wrkflw-executor

The execution engine that runs GitHub Actions workflows locally (Docker, Podman, emulation, or secure emulation).

  • Job graph execution with needs ordering and parallel independent jobs
  • Docker/Podman container steps, emulation, and sandboxed secure emulation
  • Run individual jobs via target_job / --job flag
  • GitHub Actions environment file support (GITHUB_OUTPUT, GITHUB_ENV, GITHUB_PATH, GITHUB_STEP_SUMMARY) with read-back
  • ${{ ... }} expression evaluator (toJSON, fromJSON, contains, startsWith, success(), failure(), etc.) with GitHub / env / matrix / secrets / needs / steps context
  • Action resolution for container, JavaScript, composite (with output propagation), and local actions
  • Job-level container: directive support
  • Local actions/upload-artifact, actions/download-artifact, and actions/cache via shared artifact and cache stores
  • Reusable workflow execution (jobs.<id>.uses, local or owner/repo/path@ref) with output aggregation into needs.<id>.outputs.*
  • Used by: wrkflw CLI and TUI

API sketch

use wrkflw_executor::{execute_workflow, ExecutionConfig, RuntimeType};

let cfg = ExecutionConfig {
    runtime_type: RuntimeType::Docker,
    verbose: true,
    preserve_containers_on_failure: false,
    secrets_config: None,
    show_action_messages: false,
    target_job: Some("build".to_string()), // run a single job
};

let workflow_path = std::path::Path::new(".github/workflows/ci.yml");
let result = execute_workflow(workflow_path, cfg).await?;
for job in &result.jobs {
    println!("{}: {:?}", job.name, job.status);
}

Prefer using the wrkflw binary for a complete UX across validation, execution, and logs.