Hello,

I have the following steps to create a release here:

Create a branch from a given URL
Checkout a completely new working copy from the release branch
Apply some changes so that the executable that will be built contains
the svn revision number
Commit those changes
Build the executable for the release
Tag the branch

I have thus configured a project in CruiseControl so that the source
URL is given as a parameter and with a SVN source block that has its
"trunkUrl" property set to the url of the later created release
branch.
The project is not scheduled to build automatically because it is the
user who must specify the parameter.
The first step is in "prebuild", the second should be taken care of by
the SVN source block, and the remaining steps are in the tasks
section.

This, however, does not work because CC checks the source for
modification, thus calling SVN with the not yet created branch as the
URL parameter.
Considering that the build is forced, I would have thought that no
"check for modification" would be needed, and as such that no calls be
made to SVN before the prebuild tasks are even run.

To workaround this, I have disabled the SVN taks with autoGetSource
set to False and gave it back the real trunk as the trunkUrl parameter
value.

I don't know if this should be fixed or not, but I just wanted to warn
people that despite what the documentation says, the prebuild tasks
are not run before all source control process. The check for
modification part calls the source control block before prebuild tasks
are run. This is legitimate for scheduled tasks where you do not want
those prebuild tasks to be run if there are no modifications.

But for forced builds, I would have thought that no check for
modification was ever done.

Regards
Olivier

Reply via email to