[Buildbot-devel] monitoring and tagging multiple git repositories
P. Christeas
xrg at linux.gr
Mon Jun 13 08:37:55 UTC 2011
On Tuesday 07 June 2011, Dickon Reed wrote:
> I am involved with a project that uses buildbot and OpenEmbedded to build a
> product from about 90 git repositories.
> ...
> A problem with the arrangement is that typically the builds
> don't get around to checking out HEAD and tagging what they are building
> for a few minutes. In that time it is common for other changes to be
> pushed and so included in the build. Therefore in many cases what actually
> gets built and tagged does not match the buildbot change records. ...
This scenario reminds me of the proposed structure I had asked OpenWRT
developers to follow, some years ago:
_use git submodules_
Simply, much before buildbot has appeared in our horizon, my concern had been
how to sync several projects into the group (called "distro" or "main
project"). Sumbodules of git offers exactly that.
Now, this could be a candidate solution to your situation, too (with all due
respect to other proposals and technical issues).
Personally, I use that in my openerp repo (but not the one that feeds
buildbot, so far) :
http://git.hellug.gr/?p=xrg/openerp;a=tree
See, the idea is to have /controlled versioning/ of each sub-component of your
platform project, that is then reproducible. Example, I want to commit
libhal0.5.12 as my version of choice, and then build everything against that.
One day later, I push libhal0.5.14 and retry the whole platform, for
regressions.
git-submodules guarrantee exactly that, that each one of the sub-projects will
be at a specific commit at the time of build (or even, at the time being hacked
by your project developer)
Regarding hg repos, I would recommend using fast-export/fast-import in a set
of automated scripts (done that in a Makefile for openerp), so that you bring
all your code into git repos for symmetry.
Regarding the main git repo, you'd need a few simple bash scripts to
orchestrate automatic sync of sub-projects (example, in the case you want all
subprojects to /blindly/ fetch their latest version), and generating the
commit message. Otherwise, the manual method works out of the box.
Regarding buildbot, we might need just some extra steps and minor additions to
support submodules (do we already?) . Git will do the rest.
--
Say NO to spam and viruses. Stop using Microsoft Windows!
More information about the devel
mailing list