OrchStep:开源 YAML 工作流引擎 自动化一切,为开发者和 AI Agent 而生 Token费降9成
本地和 CI 跑同一个文件:我写了个 YAML 工作流引擎 OrchStep,求各位拍砖
先自报家门:我是 OrchStep 的作者,这篇是分享 + 求反馈,不是软广,欢迎轻喷。
做运维 / CI 自动化时,我一直被两件事折磨:
- 一堆 bash 脚本和重型 CI 平台之间是断层——脚本太散,平台太重;
- 流水线只能在 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 教程,建议照着做)