运行 Ceph 拉取请求上的 make check
每个 Ceph 贡献都应该成功运行 make check 并通过其中包含的所有单元测试。开发者在 提交更改 之前会在本地运行 make check,但结果可能会受到开发环境的影响。 建议使用一个 草稿机器人 来监视 github 仓库中的拉取请求列表,并在每次上传新补丁时运行基于 github3.py 的脚本。
cephbot.py --user loic-bot --password XXXXX \ --owner ceph --repository ceph \ --script $HOME/makecheck/check.sh
如果脚本失败,它会添加 带有运行输出的评论 到拉取请求。否则,它会以相同的方式 报告成功。
这个 草稿机器人 是一个概念验证,基于 github API 不断变化以及与它交互的 python 库将最终因为维护者放弃而过时。它依赖于执行的最小功能集
- 列出所有拉取请求
- 根据其编号获取拉取请求
- 获取给定拉取请求的 head 的所有者和仓库
- 向拉取请求添加评论
该循环每 N 秒轮询拉取请求,并在克隆来自哪个仓库的更改(head)之后运行脚本。以下是上述使用的 check.sh 脚本
#!/bin/bash -ex trap "pastebinit -b http://paste.ubuntu.com/ output" EXIT ./autogen.sh >& output ./configure --disable-static --with-radosgw \ --with-debug CC="ccache gcc" CXX="ccache g++" \ CFLAGS="-Wall -g" CXXFLAGS="-Wall -g" >& output make -j8 >& output make check >& output make clean >& output trap "" EXIT echo "make check" git remote -v | head -1 git describe
输出被临时存储,并在出现故障时上传到 pastebin,以 保持添加到拉取请求的消息较小。