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 Pipeline||Build Status|
|Test Pipeline||Test 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.
Chocolatey is chosen as the default package manager for pre-built packages delivery,
rosdep is extended to support
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
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.
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.