Ask Your Question

How should I build Debian packages on a local build server?

asked 2014-12-16 08:57:35 -0600

dustingooding gravatar image

We're migrating from Fuerte to Hydro (rosbuild to catkin, more specifically), and all our existing build scripts that generate Fuerte-package-based Debian packages will no longer work. I understand the recommended approach to building Debian packages from catkin packages is to use bloom, but bloom seems very oriented to code that's released to others.

What is the recommended approach to automatically building and internally releasing Debian packages from local repositories? Ideally, every commit to our 'develop' branch would automatically generate a new Debian package for use on our test robots (likely without bumping package.xml version) and every commit to our 'master' branch would generate Debian packages for use on our production robots (with an associated bump to package.xml version). (To be clear, when I reference bumping version numbers, I mean commits to 'develop' don't constitute a new version of code for us, just another commit to be included in the next version number when they're all merged into 'master', ala git-flow.) And ideally, our Debian packages would include the git-hash in the Debian version, but I'm not clear on how to get a git-hash into the package.xml version number?

I've tried using bloom and it seems to create debs for the packages I've tested, but it's a very manual process (lots of questions to answer) and there's parts that suggest the new release will be advertised in official repos (via pull request) which is not OK.

Thanks for your help.

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2014-12-16 12:09:44 -0600

Dirk Thomas gravatar image

If you want to use any infrastructure of ROS (e.g. the new Docker-based buildfarm) you need to bloom-release your packages since it depends on the existence of GBP repositories.

The new buildfarm allows you to setup your own Jenkins farm using a private rosdistro if you don't want the code to be public. Please see the docs referenced from the buildfarm wiki page for details how to set this up.

You would need to setup custom jobs to perform automatic bloom releases. Regarding the question how to integrate the Git hash into the version number: You could put the hash into the description and level the debian increment for each new release from the develop branch.

One thing not clear to me is how you want the Debian packages from master and develop branches to coexist side-by-side.

edit flag offensive delete link more


Thanks for the buildfarm info. I'll check on that. We're using Bamboo (not Jenkins) so I hope that doesn't cause too much trouble.

As for master and develop packages, we make use of the traditional apt repository layout with "stable" (master), "testing" (develop), and "unstable" (feature) suites.

dustingooding gravatar image dustingooding  ( 2014-12-16 12:47:51 -0600 )edit

answered 2014-12-16 11:32:54 -0600

joq gravatar image

You could deploy your own instance of the ROS buildfarm.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2014-12-16 08:57:35 -0600

Seen: 905 times

Last updated: Dec 16 '14