Задача Cruisecontrol с может выполняться, даже если Soursecontrol недоступен

Я развернул сервер CruiseControl.Net (Версия 1.6.7981.1), и он выполняет следующие задачи:

  1. Построить триггер
  2. Labeller
  3. Блок Soursecontrol VSTS (Получить код источника с сервера TFS 2010)
  4. Сборка кода в режиме отладки
  5. Запустить тест NUnit с помощью задачи Nanat
  6. Объединить NUnit-Result.xml (задача издателя)

Поскольку мне нужно очищать файл NUnit-Result.xml каждый раз перед запуском задачи NUnit, я добавил задачу удаления в файл Nant.build, которая удаляет файл NUnit-results.xml перед запуском задачи NUnit.

Теперь моя проблема заключается в том, что когда моя сборка получает триггеры и если мой TFS-сервер недоступен, сборка получает сбой, и запускается только задача издателя, поэтому объединение файла результатов Old Nunit в неудачной сборке.

Я пытался запустить задачу "Prebuild", но она работает, только если TFS-сервер доступен.

Теперь то, что я хочу, это задача удаления файла Nunit-result.xml, который может выполняться, даже если моя TFS недоступна (либо до блока soursecontrol, либо внутри / после блока издателя)

заранее спасибо

3 ответа

Другой вариант - создать задачу для запуска до запуска задачи nunit, которая удаляет файл nunit-result.xml.

Например, выполнить cmd /c "del NUnit-Result.xml"

Вы можете добавить задачу exec для удаления файла в разделе издателей непосредственно перед слиянием файла.

Как это:

<publishers>
  <xmllogger />
  <statistics />
  <buildpublisher>
    <sourceDir>$(buildDir)\_PublishedWebsites\$(projectName)</sourceDir>
    <publishDir>$(webDir)</publishDir>
    <useLabelSubDirectory>false</useLabelSubDirectory>
    <alwaysPublish>false</alwaysPublish>
  </buildpublisher>
  <exec>
    <executable>$(workingDir)\deleteNunitResultxml.cmd</executable>
  </exec>
   ...
</publishers>

В конце найдите издателя, который перемещает файл результатов nunit или удаляет его. Тогда его не будет для следующей сборки.

Другие вопросы по тегам