astro-runner 1.0.0

AstroRun is a highly customizable workflow orchestrator that allows users to define their own core runners. Whether it's Docker or other platforms, AstroRun empowers users to run workflows with ease and flexibility.
Documentation
# Astro Runner

`astro-run-runner` is a specific runner implementation within [astro-run](https://github.com/panghu-huang/astro-run). It supports running the smallest execution unit of workflow steps in both local and Dockerfile environments.

It can also be used in conjunction with other components of the `astro-run` ecosystem, such as [astro-run-server](../server) and [astro-run-remote-runner](../remote-runner).

## Example

Add `astro-run` and `astro-runner` as dependencies in your `Cargo.toml`:

```toml
[dependencies]
astro-run = "0.1"
astro-runner = "0.1"
```

### Code Example

```rust
use astro_run::{AstroRun, Workflow};
use astro_runner::AstroRunner;

#[tokio::main]
#[ignore]
async fn main() {
  let workflow = r#"
jobs:
  test:
    name: Test Job
    steps:
      - timeout: 60m
        continue-on-error: false
        run: echo "Hello World" >> test.txt
      - run: |
          content=$(cat test.txt)
          echo Content is $content
          echo "Cache" >> /home/work/caches/test.txt
  "#;
  let runner = AstroRunner::builder().build().unwrap();

  let astro_run = AstroRun::builder().runner(runner).build();

  let workflow = Workflow::builder()
    .config(workflow)
    .build(&astro_run)
    .await
    .unwrap();

  let ctx = astro_run.execution_context().build();

  let _res = workflow.run(ctx).await;
}
```