I am managing the CI-server for my company, and want to run a nightly
"publish" build, which takes the output of the other "child" projects
and copies them to a new output directory. Since the output is quite
large (> 1 GB), this should only be done each night if something
changed in any of the other projects, but only if all of them have run
successfully. However, I've been running into problems. I posted
details on StackOverflow:

http://stackoverflow.com/questions/5458908/nightly-publish-build-in-cruisecontrol-net

Some problems:
1) I did not find a trigger or task "current status of project X
is ...". So to prevent the "publish" build from happening I have start/
stop it in the "child" project.
     - However, the restarting does not work, since
lastStatusCondition does not work correctly. Note that I have the
conditional tasks in the publisher section. If it were in the tasks
section, they wouldn't run in case of a failure. I tried putting just
the "restarting" part in tasks section, but it makes no difference.

2) To have the build run only at night, I tried two options, both with
problems:
  a) Use a separate schedule trigger (as in the posted config).
However, once a night has passed where nothing changed, as soon as a
"child" project completes a successful build, the "publish" build
runs. The reason is that the schedule trigger stays fired even though
the time to run has long since passed.
  b) Have the project triggers use an inner schedule trigger. However,
after restarting the ccnet.exe, this means I have to wait at least two
days for a "publish" build to occur, or always have it run, since
there is no previous data for the project trigger.

Thanks for any ideas!

Reply via email to