了解版本控制的任务运行程序
radish-run的Python项目详细描述
Radish是一个了解版本控制的任务管理器。
定义一个应用于 存储库和萝卜将找出哪些项目已经更改 并仅对这些项目运行该命令。萝卜不是替代品 对于make、gulp、gradle、rake或任何其他任务执行者。是一个 用一些技巧编排其他跑步者和脚本的补充 从版本控制存储库。
如果你用的是 CI/CD 服务器类型Concourse或 GoCD支持管道作为一级 市民您可能不需要您的ci/cd服务器上的萝卜。它 不过,在你的开发机器上还是很有用的。
如何使用
萝卜的调用示例:
$ radish command tests --from 19abc023 --to 2514ecb1 Changed paths: - extensions/cool-extension/ - frontend/js/ Running tests for extensions/cool-extension/: ........... OK Running tests for frontend/js/: .......................... OK All commands ended successfully and ran in 9.75s.
配置
radish配置是一个名为Radishfile的yaml文件,因为我可以。
paths:-extensions/*/# Mark each subdirectory in extensions as a path-frontend/js/commands:# Runs from the directory denoted by paths abovetests:default:bin/rspec specfrontend/js/:npm test
示例用例
假设您正在构建一个单页web应用程序,它由两个 部分:-提供json的后端-包含所有 最终用户看到的点击位
因为跨职能团队这个项目在一个存储库中 是生产力的伟大胜利。但它有一个缺点:当 只更改后端,则前端的所有测试都是 还在跑。最后,在运行完所有测试之后,可以部署它,但是 然后两个站点都被部署,尽管前端没有任何变化。
所以这是一个疯狂的局面。不应该的。所以这就是萝卜 进来。你告诉萝卜关于test和deploy,以及 意味着在后端和前端,然后在ci服务器上 运行最后一次绿色提交的命令。萝卜就知道了 从当前提交和最后一次提交更改的内容,并且只运行 这些项目的命令。
贡献
路线图
- 定义要始终运行的路径/项目,无论是否存在 是否更改
- 如果项目有更改,请运行其他命令
- 允许将更改的文件传递给命令。主要是 本地dev框的特性,因此只对 更改的文件。
- 项目之间的依赖关系。如果frontend-payment项目 然后在frontend项目中运行命令。
- 定制因ci系统而异,因此它们可以聪明地找出 上次绿色提交是,而不是依赖于HEAD~1作为穷人 男人们“最后的变化是什么?“
地方发展
要开始使用当前的python全局版本,请执行以下操作:
$ git clone https://github.com/gaqzi/radish.git $ cd radish/ $ make develop $ make test
这将安装所有依赖项,签出测试repo,然后 运行所有测试。
许可证
Beerware许可证