Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

How to setup continous integration for private ros repository?


We have over time accumulated many different ros packages in a private repository. The code quality is varying and to cleanup the current situation (before potentially releasing some of the packages publicly) and to avoid such a situation in the future we would like to setup a continuous integrations system.

I saw that there are multiple "tools" related to this existing (bloom, buildfarm, jenkins_scripts, jenkins_tools). But all these seem to be tightly linked into some central ros infrastructure and not necessarily suitable for a private ros repository situation. I found a document REP 137 according to which our usecase should be supported (I am unsure if REPs describe targets or current situation).

So, to bring this down to one question: How do I easily setup a continuous integration system that builds packages in a private ros repository?

A few constraints in our case:

  • Support for fuerte and dry packages. [We are right now on fuerte using dry packages. In the mid term we will switch to groovy (or later) and wet packages. But it would be ideal to already have the continuous integration for the old setup to easy transition (e.g. did the switch break things or were the broken before?). If dry/fuerte is out of the question I am still interested in hearing about a solution for wet/groovy.]
  • Ability to find out about all packages in the repository and schedule them all as jobs (with predefined sub-jobs like build, run tests, cpp-check, ...) according to their dependencies. (If every package has to be dealt with individually one creates yet another place where dependencies have to be defined.)