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

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

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

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

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

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

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

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

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

1 Ответ

1 голос
/ 13 марта 2009

Мы используем 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.thoughtworks.org/display/CCNET/Executable+Task подробности о том, что передается.

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

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

Алан.

...