警告
您正在阅读的 ROS 2 文档版本已达到 EOL(生命周期结束),不再受官方支持。如果您想了解最新信息,请访问 Jazzy.
ROS 建设农场
ROS 构建农场是支持 ROS 生态系统的重要基础设施,由以下机构提供和维护 开放式机器人技术.它们为 ROS 1 和 ROS 2 软件包提供源代码和二进制软件包的构建、持续集成、测试和分析。开源软件包有两个托管实例:
https://build.ros.org/ 用于 ROS 1 软件包
https://build.ros2.org/ 用于 ROS 2 软件包
如果您要使用所提供的任何基础设施,请考虑注册加入 建农场论坛 以便接收通知,例如有关即将发生的更改的通知。
工作与部署
ROS 构建农场可以完成几种不同的工作。每种工作类型都有详细的工作内容和工作方式说明:
发布职位 生成二进制软件包,如 debian 软件包
开发工作 以轮询方式在单个资源库中构建和测试 ROS 软件包
拉取请求工作 由网络钩子触发,在单个资源库中构建和测试 ROS 软件包
传播和信息职位 跨软件源构建和测试 ROS 软件包,并可选择使用其他 CI 作业中的工件来加快构建速度
文档工作 生成软件包的 API 文档,并从清单中提取信息
杂项工作 执行维护任务并生成信息数据,以可视化构建场及其生成的工件的状态
创建和部署
创建和部署软件包时,会创建和部署上述工作。 盛开一旦扩充成功,软件包就会被纳入其中一个 ROS 发行版(通过拉取请求到 rosdistro),就会产生相应的工作。工作的名称表示其类型和目的: [1]
释放工作:
{distro}src_{platf}__{package}__{platform}__source
构建发布源软件包{distro}bin_{platf}__{package}__{platform}__binary
构建二进制发布包
例如,ROS 2 Galactic(在 Ubuntu Focal amd64 上运行)上 rclcpp 的二进制打包任务名为
Gbin_uF64__rclcpp__ubuntu_focal_amd64__binary
.开发工作:
{distro}dev__{package}__{platform}
为发布分支执行 CI 构建
拉取请求工作
{distro}pr__{package}__{platform}
执行拉取请求的 CI 构建
例如,ROS 2 Galactic(在 Ubuntu Focal amd64 上运行)上 rclcpp 的 PR 作业名为
Gpr__rclcpp__ubuntu_focal_amd64
.
执行
工作的执行取决于工作的类型:
常见问题 (FAQ) 和故障排除
我收到 Jenkins 发送的邮件,内容是 "建设农场工作失败"。我该怎么办?
转到提出问题的任务。您可以在 Jenkins 电子邮件的顶部找到该链接。点击链接进入构建作业后,点击 控制台输出 然后点击 完整日志.这将提供失败构建的完整控制台输出。尽量找出最上面的错误,因为它通常是最重要的错误,其他错误可能是后续错误。
邮件底部可能会写道
apt-src 构建 [...]' 失败了 这 是 通常 因为 的 一个 错误 建筑物 的 包装
这通常提示缺少依赖项,见 2.我似乎缺少一个依赖项,如何找出是哪个?
您基本上有两种选择:a. 比较简单,但可能需要多次重复;b. 比较复杂,能让您全面了解情况并进行本地调试。
为什么在开发工作/我的 github 操作/我的本地构建成功时,发布工作却失败了?
这可能有几个原因。首先,发布作业会根据最小 ROS 安装进行构建,以检查所有依赖项是否已在 包清单.开发工作/github 操作/本地构建可能是在已经安装了依赖项的环境中进行的,因此不会注意到依赖问题。其次,它们可能会构建不同版本的源代码。开发工作/github 操作/本地编译通常会从源代码的 上游部门 [2] 存放处、 发布职位 构建最新发布版本的源代码,即在各自的 上游部门 的分支机构 释放 知识库 [3].
更多阅读
以下链接提供了有关建设农场的更多详细信息和见解:
https://github.com/ros-infrastructure/ros_buildfarm/blob/master/doc/index.rst - 关于建设农场基础设施和所产生的建设工作的一般文件
http://wiki.ros.org/regression_tests#Setting_up_Your_Computer_for_Prerelease
http://wiki.ros.org/buildfarm - ROS 1 构建农场的 ROS 维基条目(部分 陈旧的)
https://github.com/ros-infrastructure/cookbook-ros-buildfarm - 安装和配置 ROS 构建农场机器