Я использую Jenkins с psake, и он работает очень хорошо. Честно говоря, psake выполняет большую часть работы, а Дженкинс просто извлекает исходный код и затем вызывает мой скрипт psake, но, как говорит Ник Нисланик, вы можете легко заставить Дженкинса напрямую вызывать MSBuild / NUnit / etc, если хотите.
Дженкинс
При просмотре потоков Jenkins vs. CruiseControl (.NET) в StackOverflow, общий консенсус, похоже, был в пользу Jenkins. На самом деле не пробуя CruiseControl, я не могу за это поручиться, но скажу, что Дженкинс очень хорош. Я обнаружил, что Jenkins легко настроить. Я быстро заглянул в CruiseControl.NET и обнаружил, что с Дженкинсом проще начать работу. Я вообще не смотрел TeamCity, поэтому не могу об этом говорить.
У Jenkins есть хорошая система плагинов и множество плагинов, в том числе один для Powershell, который упрощает вызов сценария psake.
Псаке
Пока что я считаю, что psake потрясающий. Он основан на синтаксисе rake, но немного более родной для Windows, чем rake. Поскольку он находится поверх PowerShell, вы можете использовать множество удобных функций администратора Windows, которые поставляются с ним. Например, см. этот пост - отличный пример настройки и удаления пулов приложений и сайтов IIS прямо из ваших задач psake. Я думаю, что это здорово, и я не уверен, как бы вы это сделали в MSBuild, Nant или rake. Основные операции с файловой системой - это тоже хлеб с маслом - кажется, лучше, чем иметь кучу угловых скобок, просто чтобы куда-то скопировать какие-то файлы.
Что касается MSBuild и Nant, я думаю, что они обе довольно мощные, но редактирование XML-файлов для такого рода вещей кажется болезненным. Powershell - это подходящий язык сценариев с глубокой интеграцией с Windows. psake - это DSL для построения и других задач. Хорошая комбинация.
Тем не менее, для фактического построения я просто передаю его в msbuild из psake и вызываю его в файлах решения / проекта, которые я хочу построить. psake имеет встроенную команду для вызова msbuild и указания, какую версию использовать, и т. д. (по правде говоря, наибольшая боль до сих пор связана с запуском msbuild файлов решений, которые отлично собираются в Visual Studio.)
Поскольку вы работаете с RavenDB, вам может быть интересно узнать, что они используют psake для создание RavenDB (и Rhino-ESB).
Общие полезные советы по psake можно найти в этом сообщении.
Короче говоря, лично я бы порекомендовал Jenkins и psake. Эта комбинация будет хорошо интегрирована с git, msbuild, NUnit, IIS и, возможно, даже со службами Windows.
person
ngm
schedule
08.04.2012