#workflow #runner #docker #自动化 #CI

astro-runner

AstroRun是一个高度可定制的流程编排器,允许用户定义自己的核心执行器。无论是Docker还是其他平台,AstroRun都让用户能够轻松灵活地运行工作流程。

8个版本 (1个稳定版)

1.0.0 2024年7月20日
0.1.6 2024年3月15日
0.1.4 2024年2月24日
0.1.3 2023年10月1日
0.1.1 2023年8月23日

#339Unix API

Download history 10/week @ 2024-06-29 148/week @ 2024-07-20 38/week @ 2024-07-27

每月下载量 186

MIT 许可协议

155KB
4.5K SLoC

Astro Runner

astro-run-runnerastro-run 中的一个特定执行器实现。它支持在本地和Dockerfile环境中运行工作流程的最小执行单元。

它还可以与其他 astro-run 生态系统组件一起使用,例如 astro-run-serverastro-run-remote-runner

示例

在您的 Cargo.toml 中将 astro-runastro-runner 添加为依赖项

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

代码示例

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;
}

依赖项

~12–28MB
~474K SLoC