OrchStep:开源 YAML 工作流引擎 自动化一切,为开发者和 AI Agent 而生 Token费降9成

📅 2026/7/11 14:57:30 👁️ 阅读次数 📝 编程学习
OrchStep:开源 YAML 工作流引擎 自动化一切,为开发者和 AI Agent 而生 Token费降9成

本地和 CI 跑同一个文件:我写了个 YAML 工作流引擎 OrchStep,求各位拍砖

先自报家门:我是 OrchStep 的作者,这篇是分享 + 求反馈,不是软广,欢迎轻喷。

做运维 / CI 自动化时,我一直被两件事折磨:

  1. 一堆 bash 脚本重型 CI 平台之间是断层——脚本太散,平台太重;
  2. 流水线只能在 runner 里复现,本地改一行就得 push 一次,“push and pray”。

于是我做了OrchStep:一个YAML 优先的工作流引擎,核心目标是——同一个orchstep.yml,在你本地和在 CI 里跑出来一模一样

  • 项目地址:https://github.com/orchstep/orchstep
  • 文档官网:https://orchstep.dev

📚想上手别只看这篇:官网 https://orchstep.dev 上有大量可运行示例、从零开始的教程,以及面向生产环境的详细分步指南(step-by-step)——环境管理、模块复用、CI 集成、密钥处理、可视化排障等都有成体系的文档,基本照着做就能落地到生产。

几个我自己天天在用的特性

  • 本地 = CI:同一份工作流,本地直接orchstep run,和 CI 行为一致,先在本地调通再推。
  • 作用域环境变量(scoped env):被调用任务的env/dotenv在返回时自动回收,staging 的密钥不会泄漏到后面的 prod 步骤。
  • 可复用模块(modules):版本化、Git 分发;还能作为**“配置化实例”**运行——每个服务带上自己的 per-environment 配置,一个--env就能让整个服务集群各自加载自己的 profile。
  • orchstep do:把任意一次性命令,带上项目里已经解析好的变量 / 环境跑起来(相当于一个"懂上下文的envsubst")。
  • 可视化 dry-run + 本地 dashboard:先看执行计划图,再跑;本地还有个 web 面板看实时执行和历史。
  • 签名发布:每个 release 带 cosign 签名 + SBOM;安装支持brew / npm / pip / docker

一眼看懂的例子

同一份文件,本地和 CI 跑的都是它:

# orchstep.ymlname:citasks:test:dir:backend# 这个任务的命令都在 ./backend 下执行steps:-{name:unit,func:shell,do:go test ./...}-name:buildfunc:shelldo:docker build-t app:{{vars.version}}.

一次性命令也能直接带上环境上下文:

# {{ vars.image }} 会用 prod 环境的值渲染后再执行orchstepdo--envprod'kubectl set image deploy/app app={{ vars.image }}'# 拿不准?先 --render 看看渲染结果,不执行orchstepdo--render--envprod'helm upgrade app --set tag={{ vars.version }}'

上面只是最小示例。更完整的生产级用法(多环境、模块化、CI/CD 集成、密钥与审计),官网都有手把手的分步教程和成套示例:https://orchstep.dev

我知道这赛道很卷,所以想听听大家的真实想法

GitHub Actions、Dagger、Task、Earthly…… 工具不少,我也不打算取代谁的 Jenkins。我更想知道:

  • “本地和 CI 跑得一致”,对你来说是真痛点,还是你那边已经解决了?
  • 相比你现在用的东西,OrchStep 这套在哪里会掉链子?
  • 下一步我在纠结几个方向(跨 Agent 适配、更强的策略 / 审计能力),你会希望先有哪个才敢在生产里用?

欢迎直接拍砖,骂得越具体我越感激 🙏

对此工具怎样帮我们使用Token费降9成感兴趣,请留言,我会再开一篇专门讲一下


  • ⭐ GitHub:https://github.com/orchstep/orchstep
  • 📖 文档 / 示例 / 生产级分步教程:https://orchstep.dev(大量可运行示例 + step-by-step 教程,建议照着做)