Я использовал Jenkins с psake, и он работает очень хорошо.Честно говоря, psake выполняет большую часть работы: Дженкинс просто извлекает исходный код, а затем вызывает мой сценарий psake, но, как говорит Ник Nieslanik, вы можете легко попросить Jenkins напрямую вызвать MSBuild / NUnit / etc, если хотите.
Jenkins
Из потока потоков Jenkins vs. CruiseControl (.NET) в StackOverflow общее мнение заключалось в том, чтобы идти с Дженкинсом.Не особо попробовав CruiseControl, я не могу ручаться за это, но скажу, что Дженкинс очень хорош.Я нашел Дженкинс легко настроить.Я быстро взглянул на CruiseControl.NET и обнаружил, что Дженкинс легче начать.Я вообще не смотрел на TeamCity, поэтому не могу об этом говорить.
Дженкинсимеет хорошую систему плагинов и много плагинов, включая один для Powershell, который позволяет легко вызывать скрипт psake.
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.