c++embeddedcontinuous-integrationgreenhills

Continuous build infrastructure recommendations for primarily C++; GreenHills Integrity


I need your recommendations for continuous build products for a large (1-2MLOC) software development project. Characteristics:

Interested in any best practices or peripheral guidance you might offer. The build automation issues is one of several overlapping best practices that appear to be missing on the program, but try to keep your answers focused on build infrastructure piece and observations directly related.

Cost is not the driving concern. Scalability and ease of retrofitting onto an existing infrastructure are key.

(Edited to address @Dan's comment. ;-)


Solution

  • From my experience with similar systems, there are approximately two parts to this problem:

    For the latter, we've been using BuildBot, which seems to work pretty well.

    For the former, we have a homegrown solution that started out as a simple bash shell script and grew ... rather substantially. From experience, I'd suggest starting out in python rather than bash -- you'll spend far more code in handling setup and configuration than in actually invoking programs. (Also, it's probably easier to run it on Windows if you're doing that.)

    The things I've found to be really key in our script's usefulness are:

    You can get started with a reasonably simple script and let it grow organically as the need arises; honestly, although ours is a bit messy, I think we got a much more usable result that way than we would have with heavy top-down design.