wrkflw:本地验证和执行 GitHub Actions 工作流
一款用于在本地验证和执行 GitHub Actions 工作流程的命令行工具。在推送到 GitHub 之前,先在本地机器上测试你的工作流程。
功能
- TUI 界面:交互式终端用户界面,包含“工作流程”、“执行”、“有向无环图(DAG)”、“日志”、“触发”、“机密信息”和“帮助”等标签页。
- 工作流程验证:语法检查、结构验证,以及针对复合操作输入的交叉检查,并带有与持续集成/持续交付(CI/CD)友好的退出代码。
- 本地执行:支持 Docker、Podman、模拟,或沙盒化的安全模拟(无需容器)。
- 差异感知过滤:跳过其
on: 块与模拟事件和变更文件集不匹配的工作流程。
- 监视模式:在文件发生变化时自动重新运行工作流程,并带有触发感知过滤功能。
- 作业选择:使用
--job 或通过 TUI 作业选择模式运行单个作业。
- 作业依赖解析:基于
needs 自动排序,独立作业并行执行。
- 表达式求值器:计算
${{ ... }} 表达式,包括 toJSON、fromJSON、contains、startsWith 等。
- 操作支持:支持 Docker 容器操作、JavaScript 操作、复合操作(含输出传播)以及本地操作。
- 可重用工作流程:通过
jobs.<id>.uses(本地或 owner/repo/path@ref)执行调用者作业,并进行输出传播。
- 工件、缓存和作业间输出:支持
actions/upload-artifact、actions/download-artifact、actions/cache 以及 needs.<id>.outputs.*。
- GitHub 上下文模拟:支持环境变量、
GITHUB_OUTPUT、GITHUB_ENV、GITHUB_PATH、GITHUB_STEP_SUMMARY。
- 矩阵构建:全面支持
include、exclude、max - parallel 和 fail - fast。
- 机密信息管理:支持多种提供程序(环境变量、文件、Vault、AWS、Azure、GCP),具备掩码处理和 AES - 256 - GCM 加密存储功能。
- 远程触发:在 GitHub 或 GitLab 管道上触发
workflow_dispatch 运行。
- GitLab 支持:验证并触发 GitLab CI 管道。

https://github.com/bahdotsh/wrkflw