Установка CruiseControl.NET для автобилда
Исходные данные: Win2k3R2 with IIS.
1. Устанавливаем Visual Studio 2008 SP1.
2. Устанавливаем необходимые SDK.
3. Устанавливаем Collabnet SVN client only.
4. Устанавливаем CruiseControl.NET.
5. Настраиваем IIS:
- Открываем IIS Manager, создаем New Web Site по правой клавише на Web Sites.
- Запустится визард.
- Жмем Next, вводим имя сайта CCNet (например) и жмем Next, далее снова Next, если ставим все по-умолчанию (порт, заголовок и т.п.).
- Выбираем C:%ProgramFiles%CruiseControl.NETwebdashboard как рабочуб директорию нашего сайта и жмем Next.
- Ставим галочки ‘Read’ и ‘Run scripts’, и жмем Next. Веб-сайт будет создан.
6. Переходим в папку C:%ProgramFiles%CruiseControl.NETserver и редактируем файл ccnet.conf, приводим его к след виду:
<cruisecontrol>
<project name=”AMP3″>
<webURL>http://192.168.1.166:80</webURL> <!– Адрес и порт нашего вебсервера, настроенного в п.5 –>
<workingDirectory>C:ProjectsAMP3Working</workingDirectory> <!– Рабочий каталог проекта, сюда будут вытягиваться сырцы из СВН и строиться билды –>
<artifactDirectory>C:ProjectsAMP3Artifact</artifactDirectory> <!– Каталог для логов –>
<sourcecontrol type=”svn”> <!– Секция для СВН –>
<trunkUrl>svn://192.168.1.26/AMP3/trunk/AmazonMP3</trunkUrl> <!– Собственно, линк к исходникам –>
<workingDirectory>C:ProjectsAMP3Working</workingDirectory> <!– Сырцы класть сюда –>
<username>user</username>
<password>password</password>
<autoGetSource>true</autoGetSource> <!– Автоматически получать сырцы –>
<executable>C:Program FilesCollabNetSubversion Clientsvn.exe</executable> <!– Путь к файлу-клиенту СВН –>
</sourcecontrol>
<triggers>
<intervalTrigger seconds=”60″/> <!– Интервал для проверки изменений в СВН и последующих действий –>
</triggers>
<tasks>
<devenv> <!– Секция для запуска процедуры сборки –>
<solutionfile>AMP3.sln</solutionfile> <!– Файл описания проекта, обычно лежит в корне рабочей папки и вытягивается из СВН как и все остальное –>
<configuration>Debug</configuration>
<buildtype>Build</buildtype>
<project>AMP3</project> <!– Имя проекта должно совпадать с именем проекта в файле описания, solution –>
<executable>C:Program FilesMicrosoft Visual Studio 9.0Common7IDEdevenv.com</executable> <!– Путь к компилятору –>
<buildTimeoutSeconds>600</buildTimeoutSeconds> <!– Время на сборку –>
<version>VS2008</version>
</devenv>
</tasks>
</project>
</cruisecontrol>
P.S.: Для второго проекта нужно было запускать батники для сборки, поэтому в конфиг позже были добавлены такие строки:
<project name=”P2″>
<webURL>http://192.168.1.166:80</webURL>
<workingDirectory>C:ProjectsP2Working</workingDirectory>
<artifactDirectory>C:ProjectsP2Artifact</artifactDirectory>
<sourcecontrol type=”svn”>
<trunkUrl>svn://192.168.1.2/P2/Inner_build</trunkUrl>
<workingDirectory>C:ProjectsP2Working</workingDirectory>
<username>p2</username>
<password>p2</password>
<autoGetSource>true</autoGetSource>
<executable>C:Program FilesCollabNetSubversion Clientsvn.exe</executable>
</sourcecontrol>
<triggers>
<intervalTrigger seconds=”60″/>
</triggers>
<prebuild>
<exec>
<baseDirectory>C:ProjectsP2WorkingInner_buildUtils</baseDirectory>
<executable>C:ProjectsP2WorkingInner_buildUtilscopy_all_headers.bat</executable>
</exec>
</prebuild>
<tasks>
<exec>
<baseDirectory>C:ProjectsP2WorkingInner_buildAutoBuild</baseDirectory>
<executable>C:ProjectsP2WorkingInner_buildAutoBuildbuild.bat</executable>
<buildTimeoutSeconds>3600</buildTimeoutSeconds>
</exec>
</tasks>
</project>
7. Для проверки работоспособности запускаем сначала консольный вариант сервера ccnet.exe.
Если что-то не так, – напишет соответствующее сообщение. Если все ОК – services.msc – ставим службе CruiseControl автоматичесий запуск.
8. Используемые ссылки:
http://confluence.public.thoughtworks.org/display/CCNET/Visual+Studio+Task
http://confluence.public.thoughtworks.org/display/CCNET/Task+And+Publisher+Blocks
http://confluence.public.thoughtworks.org/display/CCNET/Email+Publisher
http://confluence.public.thoughtworks.org/display/CCNET/Build+Publisher
http://confluence.public.thoughtworks.org/display/CCNET/Subversion+Source+Control+Block
http://wiki.agiledev.ru/doku.php?id=automation:build_package_deploy
http://ilmatte.wordpress.com/2008/06/01/cruisecontrolnet-tutorial-part-1/#ccnettutinstallccnet
http://elegantcode.com/2009/02/10/getting-cruisecontrolnet-working-with-svn-over-https/
http://weblogs.asp.net/jdanforth/pages/How-to-Hook-Up-a-VS.NET-2005-Solution-With-CruiseControl.NET-in-a-Few-Minutes.aspx
https://oss.werkbold.de/trac-cc
https://oss.werkbold.de/trac-cc/wiki/CruiseControlSection
9. Скриншоты:
Загрузка по сети OS, ISO, etc Загрузка образа HirensBootCD по сети через WDS