Приложение ASP.NET - извлечение, тестирование, компиляция и развертывание

Предположение: я новичок в области непрерывной интеграции.

Какой метод мне следует использовать для извлечения, тестирования, компиляции и развертывания приложения ASP.NET (.NET 3.5).

Шаг 1) Иногда я хотел бы получить последний исходный код из TFS, а иногда и из Subversion.

Шаг 2) Запустите все тесты. (Сейчас я использую MbUnit)

Шаг 3) Если все тесты пройдены, создайте релизную версию.

Шаг 4) Разверните код через FTP - заменив текущее приложение по определенному URL-адресу

Я ищу решения, которые легко изучить и настроить, а также недорогие или бесплатные / с открытым исходным кодом.

Будет ли MSBuild самым простым для шага №3? Поскольку я действительно не хочу делать ничего особенного ... просто укажите имя решения и скомпилируйте его. Моя главная забота - найти что-то, что отвлечет от любых серьезных проблем, вызванных требованием / шагом №1.


person BuddyJoe    schedule 13.03.2009    source источник
comment
Я нашел это полезным - stackoverflow.com/questions/220075   -  person BuddyJoe    schedule 13.03.2009


Ответы (1)


Мы используем CruiseControl.net, однако ваше первое требование может быть проблемой. Не могли бы вы объяснить, как вы делаете выбор в отношении того, из какого репозитория вы берете исходный код. CC.NET может работать с любым из них или может работать с обоими одновременно, если вы немного поумнели с настройками ccnet.config, но это больше зависит от того, как вы знаете, из какого из них брать.

В остальном это просто, я использую NAnt, чтобы делать настоящую работу, и до этого легко.

редактировать:

NAnt некоторое время не обновлялся, разработка остановилась с выходом MSBuild. Если вы выполните поиск по stackoverflow, вы найдете немало вопросов типа «должен ли я переключиться на MSBuild», лично у нас есть разумный объем знаний о NAnt, он делает то, что мы хотим, и есть некоторые вещи, которые мы делаем, которые появляются очень сложно в MSBuild, так что мы еще немного подождем.

В CruiseControl.NET есть задачи, которые могут вызывать MSBuild напрямую, мы по-прежнему вызываем DevEnv напрямую, поскольку мы создаем множество проектов развертывания, с чем у MSBuild возникают проблемы.

Наш сценарий NAnt проводит нас на всем пути от извлечения нужного источника из ClearCase до упакованного продукта, готового к отправке.

Однако NAnt - это всего лишь один из вариантов, если вас устраивает другой язык сценариев, такой как PowerShell, тогда нет причин, по которым его не следует использовать. CruiseControl.NET может вызывать любой исполняемый файл как задачу с помощью тегов и передавать большой объем информации с помощью переменных окружения. Эта страница: http://confluence.public.aughtworks.org/display/CCNET/Executable+Task подробно описывает, что передается.

С точки зрения использования тех же шагов, единственная разница между двумя настройками будет заключаться в блоке управления версиями в файле ccnet.config, наш скрипт NAnt вообще не меняется, когда мы меняем используемое представление, так как все относительно, и мы получаем иметь стандартный макет для наших представлений, что означает, что мы всегда знаем, где что находится.

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

Алан.

person Alan Mullett    schedule 13.03.2009
comment
TFS была бы для работы. Subversion была бы моей подработкой. Я хотел бы использовать те же шаги для остальной части процесса. NAnt по-прежнему активен ... на сайте создается впечатление, что последнее обновление было 8 декабря 2007 года. MSBuild стал новым ИТ? - person BuddyJoe; 13.03.2009
comment
Насколько легко скомпилировать решение с помощью NAnt? Можете ли вы сделать это в одной строке / в режиме XML? Я немного поправляюсь с PowerShell, если мне нужно склеить некоторые шаги вместе. - person BuddyJoe; 13.03.2009
comment
Я отредактировал сообщение, чтобы добавить мысли об этих вещах. Алан. - person Alan Mullett; 14.03.2009