【Kubernetes社区之路】kubernetes机器人指令介绍

Prow是kubernetes社区使用的CI/CD系统,基于kubernetes实现,它提供了一系列/foo格式的命令供用户使用。使用这些指令,可让机器人完成相应的工做,例如,当你提交PR后,可使用/assign @<somebody>命令来指定一个owner来审核你的PR。app

当开发者提交PR(Pull Request)到kubernetes社区时,机器人会自动回复你,并在回复中指示当前PR的状态或者指示你下一步该如何作,别人也会在你的PR中回复一些机器人命令,因此,作为开发者有必要清楚的了解经常使用的一些命令。ide

下面介绍一些比较常见的命令,更多的命令能够查阅官方介绍(https://prow.k8s.io/command-help)。测试

TODO: 或许能够按照标签操做类、流程控制类、其余来分类ui

重跑失败的用例:/retest

顾名思义,这个命令用于从新执行失败的测试(有时自动化测试会因环境因素而失败),因为只有PR才会触发自动化测试,因此这个命令仅用于PR中。this

用法举例:code

  • /retest : 重启失败的测试

使用条件:blog

  • 只能用于可信的PR,即包含ok-to-test标签的PR;
  • 任何人均可以使用;

命令效果:ip

  • 从新启动失败的测试;

图示以下:开发

手动触发测试用途:/test

/test用于手动执行某个或所有测试用例,有些用例并没包括在自动化测试用例范围内,若有必要能够手动触发。rem

用法举例:

  • /test pull-kubernetes-bazel-test:启动pull-kubernetes-bazel-test测试;
  • /test all: 启动所有测试用例;

限制条件:

  • 只能用于可信的PR,即包含ok-to-test标签的PR;
  • 任何人均可以使用;

命令效果:

  • 启动指定的测试用例;

图示以下:

修改标题:/retitle

看起来不错:/lgtm

lgtmlooks 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;

限制条件:

  • 任何人均可以使用;

命令效果:

  • 机器人回复一个笑话,并@命令发起人;

图示以下: