mirror of
https://github.com/bahdotsh/wrkflw.git
synced 2026-05-18 05:05:35 +02:00
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
wrkflw-executor
The execution engine that runs GitHub Actions workflows locally (Docker, Podman, emulation, or secure emulation).
- Job graph execution with
needsordering and parallel independent jobs - Docker/Podman container steps, emulation, and sandboxed secure emulation
- Run individual jobs via
target_job/--jobflag - 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, andactions/cachevia shared artifact and cache stores - Reusable workflow execution (
jobs.<id>.uses, local orowner/repo/path@ref) with output aggregation intoneeds.<id>.outputs.* - Used by:
wrkflwCLI 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.