CruiseControl.net и svn оформление заказа

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

Спасибо


person user62958    schedule 12.03.2009    source источник


Ответы (3)


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

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

person flowy    schedule 12.03.2009
comment
Я не знаю, по какой-то причине я не могу заставить cleanCopy работать с svn. Я использую несколько источников управления для svn. - person user62958; 13.03.2009

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

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

Для этого я вызываю цель, определенную в моем скрипте сборки (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 в командной строке, а мой рабочий каталог пуст. У меня есть аналогичные задачи для выполнения последней, полной сборки и т. Д.

person Frederik Gheysels    schedule 12.03.2009
comment
Чистый также часто используемый термин сборки для удаления сгенерированных файлов, таких как .DLL и т. д. - person ctford; 12.04.2011

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

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

person mcdon    schedule 04.09.2009