Pull请求测试
使用包ros_buildfarm,你可以运行构建和测试ROS构建工厂逻辑,运行在你选择的主机上。ROS build farm还为托管在GitHub上的存储库提供拉请求测试。
启用Github上特定存储库的pull请求测试。
对于每个存储库,必须完成以下两件事。
链接Jenkins和你的GitHub存储库
有两种方法可以做到以下几点。对于一些GitHub org单元,这可能已经完成了。如果你需要将其添加到org单元,请联系org单元的维护人员或询问answers.org。
(推荐) 授予对org unit(即不只是存储库)的访问权限ros-pull-request-builder, ROS构建工厂GitHub用户访问。如下:
打开"https://github.com/%YOUR_ORG%/%YOUR_REPO%/settings/collaboration".
在"Collaborators",,添加"ros-pull-request-builder" (在虚线中,如下图所示。)).
从pulldown选择"Admin".
Jenkins使用Pull Request 构建插件 来设置webhook,可以触发Jenkins的新或更新的拉请求,并报告状态。因此,存储库所在的GitHub org单元必须向用户授予push, pull 和管理权限。
或者,你可以为每个存储库手动设置webhook,以避免在组织单元上需要管理权限(或者如果存储库不在组织中,因此你没有能力提供"Admin"访问)。然后Jenkins用户只需要write权限。
- 使用上面的过程来授予"Write"访问权限,而不是"Admin",或者如果存储库不是组织的一部分,添加为协作者,而不需要从不存在的下拉菜单中选择任何东西。
跳转到"https://github.com/%YOUR_ORG%/%YOUR_REPO%/settings/hooks/new", 然后在相同的界面:
输入"Payload URL" "http://build.ros.org/ghprbhook/"
- 检查:
- "Let me select individual events."
"Issue comment"
"Pull request"
更新rosdistro
你必须将test_pull_requests标志添加到分发文件中特定存储库的source条目中,并将其设置为true。如看到Indigo distribution file。配置选项文档在REP 143.
如果你使用bloom来发布你的软件发布版,在运行的同时有一个选项。
注意,在添加了pull请求之后,通常不会创建工作,直到夜间Jenkins重新配置。
与其他CI系统集成
如果你不想使用官方的Jenkins服务器,你还可以为你的存储库设置任何其他CI系统(例如Travis),同时还可以利用Python包ros_buildfarm提供的逻辑。请查看文档得到一个关于.travis.yml文件示例。
集成使用其他服务
Python包ros_buildfarm 还提供在命令行上运行各种作业的脚本。 pull请求作业只是针对pull请求的特定分支触发的一项工作。 文档描述如何在本地运行开发工作. 这可以用于在本地执行特定任务的任务,也可以用于像Travis这样的服务提供者。