Search code examples
svnbuildbot

Configuring Buildbot Builder for correct SourceStamp behavior


I got a question related to the correct "source stamp" usage in buildbot.

The Scenario:

  • The project to build is composed by a lib and a core
  • The lib and the core are stored into two different svn repositories
  • The lib and the core have different revison numbers on the trunk's head
  • The build factory of the project does the checkout of the lib (head), builds it, then checks out the core (head) and builds it (linking the previously built lib) All in the same build factory.
  • Assume build #123 (in buildbot) is broken because of a bad checkin into the core source repo. Previous build #122 was fine.
  • From the builder page I select the specific build (#122), then select the "build same sourcestamp" and click on "Rebuild"

What I was expecting:

  • the buildslave would checkout the lib and core svn revisions used when he run the build #122, lets say rev r100 for the lib and revision r1456 for the core.

What really happens:

  • the buildslave checkout is performed on the head of the both repo causing the build to fail

The Question(s):

  • I'd like to understand if my understanding of how the "source stamp" in buildbot works is correct.
  • Am I doing something wrong in the configuration?
  • Is there something I have to do specifically to have the slave behave as I was expecting? (if it is possible at all)

My setup is the following: buildbot 0.8.9 on both master and slave. The code is stored into an svn reposotory


Solution

  • If a Builder has two different checkouts, you must use the "codebase" feature. This will let you track two sourcestamps, one for each one. Are you using "codebase"?