[Buildbot-devel] how to get buildbot to build an old (i.e. tagged) version?

Brian Warner warner-buildbot at lothar.com
Thu Jan 15 20:14:17 UTC 2004


> Is there a way that I can specify a CVS tag instead of getting the
> latest version of all files?

Dang, there isn't. I thought I'd added that in there but there is currently
no way to let you add an "-r FOO" argument to the right-side CVS options,
which is what you'd want to do to build from a branch. I'll add this glaring
feature-hole to the todo list.

Well, actually, you can use a regular ShellCommand instead of the
more-specialized CVS BuildStep. It will be more bandwidth-intensive, as it
can't make the same local "checkout or update?" decisions as the CVS step can
do.

You'll need to subclass ConfigurableBuildFactory and arrange for the
self.steps it creates to include something like:

 (ShellCommand, {'workdir': ".", 'command': "rm -rf %s" % workdir})

and then

 (ShellCommand, {'workdir': ".", 'command': "cvs -d blah co -r FOO blah"})

But really the right way to do it is to fix the CVS step to pass through a
'cvstag' option. That means patching step.CVS, adding the arg to the
dictionary sent through to the buildslave, patching slavecommand.CVSCommand
to extract the argument and insert it into the CVS command line it builds up.
And then finally patching base.BasicBuildFactory to let you specify a cvstag=
argument, so that you can use this feature without having to subclass
anything.

Patches gratefully accepted :). Or I'll see if I can get around to adding
this over the next week.

cheers,
 -Brian




More information about the devel mailing list