Prow
是kubernetes社区使用的CI/CD系统,基于kubernetes实现,它提供了一系列/foo
格式的命令供用户使用。使用这些指令,可以让机器人完成相应的工作,例如,当你提交PR后,可以使用/assign @<somebody>
命令来指定一个owner来审核你的PR。
当开发者提交PR(Pull Request)到kubernetes社区时,机器人会自动回复你,并在回复中指示当前PR的状态或者指示你下一步该如何做,别人也会在你的PR中回复一些机器人命令,所以,做为开发者有必要清楚的了解常用的一些命令。
下面介绍一些比较常见的命令,更多的命令可以查阅官方介绍(https://prow.k8s.io/command-help)。
TODO: 或许可以按照标签操作类、流程控制类、其他来分类
重跑失败的用例:/retest
顾名思义,这个命令用于重新执行失败的测试(有时自动化测试会因环境因素而失败),由于只有PR才会触发自动化测试,所以这个命令仅用于PR中。
用法举例:
- /retest : 重启失败的测试
使用条件:
- 只能用于可信的PR,即包含
ok-to-test
标签的PR; - 任何人都可以使用;
命令效果:
- 重新启动失败的测试;
图示如下:
手动触发测试用途:/test
/test
用于手动执行某个或全部测试用例,有些用例并没包括在自动化测试用例范围内,如有必要可以手动触发。
用法举例:
- /test pull-kubernetes-bazel-test:启动
pull-kubernetes-bazel-test
测试; - /test all: 启动全部测试用例;
限制条件:
- 只能用于可信的PR,即包含
ok-to-test
标签的PR; - 任何人都可以使用;
命令效果:
- 启动指定的测试用例;
图示如下:
修改标题:/retitle
看起来不错:/lgtm
lgtm
是looks good to me
的缩写,用来表示对某个PR的认可。
当某个reviewer在PR中回复/lgtm
时有两个意思,一方面表示对PR的认可,另一方面指示机器人在该PR中打上lgtm
标签。拥有lgtm
标签是该PR最终能被合入的必要条件。
lgtm
标签也是可以撤销的,当其他reviewer或作者发现还有问题需要修改时,可以以使用/lgtm cancel
来撤消标签。
用法举例:
- /lgtm:代码检视后使用,给PR增加
lgtm
标签; - /lgtm cancel:删除
lgtm
标签;
限制条件:
- 只能被社区成员使用;
- PR作者可以使用
lgtm cancel
;
命令效果:
- 给PR增加或删除
lgtm
标签;
图示如下:
/check-dco
/check-cla
/cc
/assign
/approve
/auto-cc
/bugzilla refresh
/buildif(y|ier)
/meow(vie) [CATegory]
/(woof|bark|this-is-{fine|not-fine|unbearable})
/lint
/remove-
/hold [cancel]
/remove-
/close
/reopen
/[remove-]lifecycle
/milestone or /milestone clear
/status (approved-for-milestone|in-progress|in-review)
/override [context]
/(pony) [pony]
/project , /project , or /project clear
/release-note-none
/[un]shrug
/skip
/[remove-]stage
/ok-to-test
/joke
/joke
是个非常有意思的命令,它会指示机器人讲个笑话,除此之外没有任何作用。
用法举例:
- /joke;
限制条件:
- 任何人都可以使用;
命令效果:
- 机器人回复一个笑话,并@命令发起人;
图示如下:
来源:oschina
链接:https://my.oschina.net/u/101347/blog/3068260