CruiseControl.net и svn оформить заказ - PullRequest
0 голосов
/ 12 марта 2009

Я могу настроить круиз-контроль на работу с SVN. Что я пытаюсь сделать, так это то, что когда cruisecontrol обнаруживает изменение в хранилище, он удаляет все внутри моего рабочего каталога и , а затем снова проверяет весь проект. Я не уверен, как я могу это сделать. Похоже, что cruisecontrol автоматически обновляет рабочий каталог, когда он есть, и обновляет в хранилище, но он не удаляет лишние файлы (например, bin-файл), прежде чем обновит каталог.

Спасибо

Ответы [ 3 ]

2 голосов
/ 12 марта 2009

В вашем файле ccnet.config ваш блок управления исходным кодом содержит элемент cleanCopy? Чтобы удалить все в рабочем каталоге, убедитесь, что для cleanCopy установлено значение «true»

Надеюсь, это поможет.

0 голосов
/ 04 сентября 2009

Ваш скрипт сборки может сначала удалить каталог bin, а затем скомпилировать проект. Создайте задачу сборки с именем «clean», которая удаляет скомпилированную выходную папку, затем установите задачу «mainBuild» в зависимость от «clean». «Чистую» задачу проще создать, если все компилируется в общую выходную папку.

Предпочтительнее установить ccnet.config для очистки рабочей копии или добавить задачу сборки для очистки рабочей копии.

0 голосов
/ 12 марта 2009

Я не знаю, работает ли SVN аналогично TFS (у него есть кэш и т. Д.), Но вот как я это делаю с CC.NET и Sourcesafe:

В разделе предварительной сборки моего проекта я проверяю, что я очищаю свой рабочий каталог, то есть: я удаляю все, что находится внутри него.
(Задачи, включенные в раздел предварительной сборки, будут выполнены до того, как CC.NET выведет последнюю версию вашего проекта из системы контроля версий).

Для этого я вызываю цель, определенную в моем buildscript (msbuild), которая называется «чистой».

Эта цель удаляет все файлы и каталоги.

Примерно так выглядит задача в моем сборочном скрипте msbuild (наизусть, у меня ее тут нет со мной):

<Task name="clean">
   <ItemGroup>
       <FilesToDelete include="$(workingdir)\**\*.*" />
   </ItemGroup>
   <ItemGroup>
        <DirectoriesToDelete include="$(workingdir)\**" />
   </ItemGroup>
   <Delete Files="@(FilesToDelete)" />
   <RemoveDir Directories="@(DirectoriesToDelete)" />
</Task>

Затем в конфигурации проекта CC.NET я вызываю скрипт MSBuild с помощью задачи MSBuild и называю эту цель.

Что мне нравится в этом, так это то, что я могу очень легко очистить свой рабочий каталог на своей рабочей станции; Мне просто нужно вызвать эту цель, используя вызов msbuild в командной строке, и мой рабочий каталог пуст. У меня есть похожие задачи для выполнения getlatest, полной сборки и т. Д. ...

...