Skip to content

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) Build Status
ros-colon-build(noetic) Build Status
ros-colon-build(crystal) Build Status
ros-colon-build(dashing) Build Status
ros-colon-build(eloquent) Build Status
ros-colon-build(foxy) Build Status
rosdep-au-packages Build Status

Test Results

Test Pipeline Test Status
runtests.ros.melodic.desktop Build Status
runtests.ros.melodic.ros_base Build Status

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.