执行任务
当你通过 .unirtm.toml 或 .unirtm/tasks 目录配置好任务后,你就可以使用强大的 unirtm run 命令来执行它们了。
基本用法
bash
# 运行单个任务
unirtm run build
# 运行多个任务(依次或并行,取决于依赖图)
unirtm run lint test build如果你直接输入 unirtm run 而不带任何参数,它会智能提取当前所有可用的任务,并呈现一个带有简短描述的交互式列表(类似 make help)。
并行执行与依赖解析 (DAG)
UniRTM 拥有一个内部的并发有向无环图 (DAG) 引擎。如果你运行了一个定义了前置依赖 depends_on = ["A", "B"] 的任务 C:
- UniRTM 会首先检查 A 和 B 是否有各自的依赖。
- UniRTM 会完全并行地同时执行 A 和 B。
- 只有当 A 和 B 都以退出码
0成功返回后,C 才会开始执行。 - 如果 A 或 B 中有任何一个失败,整个执行链将立即终止并报错。
通过这种架构,你可以最大程度榨干多核 CPU 的性能!
终端 UI 与 Pterm 集成
UniRTM 使用了高性能的终端 UI 库 (Pterm) 来接管任务输出。
- 流式输出:在并行执行时,不同任务的输出会被智能隔离并通过前缀标记(如
[build] ...,[test] ...),防止由于并发导致的输出日志错乱。 - 动态状态栏:底部会显示一个动态的进度指示器,让你清楚地看到当前哪些任务正在 Running,哪些已经 Done。
- 纯文本降级:当检测到当前处于 CI 环境(如 GitHub Actions)时,UniRTM 会自动禁用动态 UI 和彩色输出,降级为纯文本流式输出,确保日志文件的可读性。
高级运行参数
1. 传递参数
如果你需要向底层脚本传递额外的命令行参数,请在任务名称后面使用 --:
bash
# 这里的 --fix 会被传递给 lint 脚本
unirtm run lint -- --fix2. 演练模式 (Dry-run)
在调试复杂的任务图时,你可能只想看看执行顺序,而不想真正执行危险的命令。你可以使用演练模式:
bash
unirtm run deploy --dry-run这会打印出按顺序排好序的执行计划表,以及它们对应的真实 Shell 命令。
3. 指定并发数限制
在默认情况下,UniRTM 会根据你机器的 CPU 核心数自动决定最大并行线程数。你可以强制覆盖它:
bash
unirtm run build --jobs 2