关于 PR CI
持续集成 (Continuous integration,简称 CI) 提供了配置非常不错的虚拟服务器环境,基于它可以进行构建、测试、打包、部署项目。
流程
-
获取两个 approve;
-
在 reviewer 中添加 bot:
- 根据 bot 的提示添加 label。注意要选一下 automerge,表明 bot 在测试通过时会自动合并 pr 到 master。此外,提示信息中的 label 选一个就行了,而不是全选,这里有个傻子第一次添加 label 全选了 :sweat:
- 等待 CI 结束……
注意事项
- 如果是 bot 来 format 代码,那么出现如下提示之后需要重新添加 bot 之后才会继续跑 CI 流程
- 当 CI 显示 queued 时,等待其执行结束即可,但是如果好几个小时还没有调度到 ci,则应该重新添加 bot
- 如果 CI 显示 cancelled,查看 cancel 原因,常见的问题是长时间等待不到 GPU 资源而自动取消,此时需要重新添加 bot 或者 Rerun
- 如果 CI 错误并且报错信息与自己的 pr 无关,尝试重新添加 bot。如果重新添加 bot 仍然出现同样错误,可以根据错误提示注释该部分代码。例如如下错误并不是自己 pr 导致的,可以尝试在服务器复现,复现不了的话可以先注释 test_crossformer_compatibility
- 最近提交 CI 总是 canceled 请求不到资源,晓雨的经验是 别人合了 pr 之后你要第一个点 update,即收到 master 有 pr 合并了的邮件或者从 github 的 channel 看到有 pr 合并, 重新在自己 pr 添加 bot
- 如果 pr 中有添加或者修改 docString,可以在合并 pr 前运行
./python/oneflow/test/modules/test_functional_docstr.py
来检查文档是否有问题