The BuildFarm for ROS on Windows
The BuildFarm is a public service which is made of a set of tools and Azure DevOps pipelines to continuously build\test\deliver Open Robotics ROS for Windows developer community.
Build Status
Build Pipeline | Build Status |
---|---|
ros-catkin-build(melodic) | |
ros-colon-build(noetic) | |
ros-colon-build(crystal) | |
ros-colon-build(dashing) | |
ros-colon-build(eloquent) | |
ros-colon-build(foxy) | |
rosdep-au-packages |
Test Results
Test Pipeline | Test Status |
---|---|
runtests.ros.melodic.desktop | |
runtests.ros.melodic.ros_base |
ROS System Dependencies on Windows
ROS target platforms defines a set of tools and packages which ROS packages depends on. Those tools and packages are also called ROS system dependencies, and they can be deployed by rosdep
for any supported platforms.
On Windows, Chocolatey
is chosen as the default package manager for pre-built packages delivery, rosdep
is extended to support Chocolatey
and pip
on Windows platform, and https://aka.ms/ros/public is created to host them for Windows developers.
rosdep.yaml
is also extended for Windows. Every ROS on Windows environment gets additional manifest files. For example, win-chocolatey.yaml
defines what Chocolatey
or pip
packages to install when Windows developers uses rosdep
to resolve dependencies.
Azure DevOps Pipelines for System Dependencies
Everytime an new package is identified to be onboarded for Windows. The pre-built binaries are generated offline and uploaded to rosdep-au-packages
repository. It is an automatic packaging repository using Chocolatey Automatic Package Updater Module
, and the deployment is automated in Azure DevOps.
When a package is added or updated, rosdep-au-packages CI
pipeline will be triggered, and it starts packaging and generating .nupkg
files. After the packaging pipeline finishes, ROSDEP to ROSWIN Public Chocolatey Server
pipeline will be triggered in turn and publishing those newly added\updated packages to https://aka.ms/ros/public.
ROS Build on Windows
The Open Source Robotics Foundation (OSRF) maintains public buildfarm for the community. Package maintainers can make use of this public services to release ROS packages in sources or pre-built binaries on certain platforms. Likewise, the Buildfarm for ROS on Windows is an equivalent service to complement Windows developer community.
Nightly Upstream Build Pipelines
One goal of the buildfarm is to make sure every ROS packages built from the upstream (the latest) source code. It is important to catch any regressions as early as possible.
ros-catkin-build/azure-pipelines.yml
is the entry point for the build. It kicks off source installation on Azure DevOps and the binaries are packaged into Chocolatey
packages.
Pre-built Binaries Release Pipelines
Whenever a nightly build finishes successfully, a deployment will start in turn, which publishes the Chocolatey
packages to https://aka.ms/ros/public. The nightly builds will be firstly published as prerelease
packages, and a prerelease
package can be promoted to a release
package when it mets quality criteria.