[Documentation] [TitleIndex] [WordIndex

(!) This page collects experience and advice on using continuous integration (CI) approaches with ROS. It currently lacks an objective comparison pointing out the differences between the available solutions. Please consider contributing.


During ROSCon 2015 Birds Of a Feather session was suggested to create such page to help people setup CI on their projects.

ROS Build Farm

Also check the talk: The ROS build farm - what it can do for me at ROSCon 2016.

The ROS build farm is used to provide the official ROS packages and successfully works with a large number of repositories and packages. Beside building Debian packages it also provide continuous integration builds, GitHub pull request testing as well as documentation generation. Jenkins provides an easy interface to the result of all unit and rostests. It is build around the recommended ROS tools and uses Docker to perform easily repeatable results.

The Python package also provides a command line interface to use each job type in other environments, e.g. on any CI server (e.g. how to run a devel job on Travis) or locally.

It can be used to deploy a custom build farm to build and release custom, optionally closed-source packages, build for platforms and architectures not provided by the official ROS build farm, and/or customize any part of the process to specific needs.


This is a project for building ROS components using Buildbot. This is not aimed to be a replacement for the ROS buildfarm, but rather a (hopefully) easier to setup system for developers wishing to build their own packages, run continuous integration testing, and build docs. More details here

Shadow Robot's Build Tools

These tools offer the following benefits

Please post your improvements suggestions or issues on GitHub page.

industrial_ci, CI Config Suite from ROS-Industrial

Also check ROS Testing, Continuous Integration (CI), and Deployment webconference recording.

industrial_ci contains CI (Continuous Integration) configuration that can be commonly used by the repositories in ROS-Industrial's github organization. Non ROS-Industrial repositories in other organizations can utilize the CI config here too, as long as they are ROS-powered.

Objective Comparison

/!\ This table is work-in-progress. Your addition is appreciated.

Tool name

Written in


Supported ROS distro

Supported archtectures

Build Tool

ROS buildfarm


Docker, full deployments use Jenkins, individual jobs can be run anywhere (e.g. locally on Linux and MacOS, on Travis)


i386, amd64, argmhf, armv8




Runs on Jenkins

Jade (WIP for Kinetic)











bash environment

Hydro onward



2018-03-10 12:15