2009-05-03 4 views
6

Примечание: Я Newb для непрерывной интеграцииC#/NET - Непрерывная интеграция и развертывание FTP

Что такое «лучший» подход, чтобы получить эти функции:

  1. сборки (узлы и веб app)
  2. Тестирование (MbUnit или NUnit)
  3. и если он проходит тесты, развернутые через FTP на главный сервер (интернет).

И что я имею в виду под «лучшим», является самым дешевым вариантом и легко учится (низкая головная боль).

ответ

5

Я написал довольно подробную запись в блоге с помощью TeamCity и веб-проектов развертывания для автоматизации сборки и развертывания (локальный) здесь:

http://www.diaryofaninja.com/blog/2010/05/09/automated-site-deployments-with-teamcity-deployment-projects-amp-svn

Я потом добавил к этому, чтобы показать FTP добавление

http://www.diaryofaninja.com/blog/2010/09/21/continuous-integration-tip-1-ndash-ftp-deployment

в основном этот процесс выглядит так:

  • Использование TeamCity сборки сервера я загрузить с моей SVN репо
  • Я строю и развернуть сайт в локальной папке на сервере сборки
  • Я огонь командной строки FTP клиент, который поддерживает скрипты под названием WinSCP с помощью MSBuild задачи EXEC (http://winscp.net/)
  • Загрузить все мои сайты содержание
  • Есть вставки напиток выбора

Я убедитесь, что я только развернуть Магистральные моего SVN-репо, а также разрабатывать и тестировать все в филиале до слияния - таким образом только развернутый тестируемый материал развертывается. Добавьте автоматическое тестирование в цикл сборки, и у вас есть матч, сделанный на небесах.

+1

Вы знаете, это тот подход, который я принимал с несколькими крупными клиентами на некоторое время, и он хорошо меня обслужил. Team Foundation Server отлично работает, если вы работаете во всех средах MS, но работаете со «смешанной» компанией, где SCM может уже существовать (SVN в моем случае), это, похоже, отлично работает. Единственное странное чувство, которое я получаю, похоже, похоже, что у MS будет установка, которая будет делать все это? –

+0

Вы можете использовать MSDEPLOY, однако я считаю, что он не дает вам уровня контроля, который приведенный выше подход дает возможность писать сценарии в вашей сборке (копирование пользовательского app_offline.htm и т. Д.) – Doug

+0

Вы забыли поставить угловые скобки вокруг вставить напиток выбора: должен быть <вставить напиток выбора>: D Серьезно, хотя ... устрашающий ответ! – longda

2

Я бы пошел с msbuild и mbunit для модульных тестов. Для FTP-части google для пользовательских задач msbuild с FTP, и вы должны готовить на газе.

+0

Так что просто используйте msbuild самостоятельно? Нет необходимости в CI-сервере? – BuddyJoe

+0

Вам лучше учиться msbuild, скрипты сборки основаны на XML, поэтому вы должны быть знакомы с ними. Когда у вас есть сценарий сборки, вы можете подключить круиз-контроль. Это то, как я буду летать. – Burt

1

Я исторически использовал CruiseControl, который работал отлично, но я также слышал хорошие вещи о TeamCity. Что касается FTP-задач для MSBuild (что определенно так, как вы хотите), есть некоторые, которые можно найти в сети. Когда я проверил последний раз (что было совсем не совсем недавно), все, что я нашел, имело тот или иной недостаток, поэтому я закончил писать сам (обертывание FtpWebRequest в .NET). Хотя это может быть не самая лучшая реализация FTP, задача обеспечила мне необходимую функциональность (загрузка структур каталогов, удаленное удаление). Я предполагаю, что сегодня могут быть задачи, обеспечивающие эту функциональность (иначе, может быть, мне следует просто опубликовать мою ...)

0

Мы делаем то же самое с Zed Builds and Bugs Manager от Hericus Software.

Нам нужно объединить сборки .NET с C++ dll и объединить все это в Java-установку (представьте, что путаница :-)). Мы также используем FTP для загрузки некоторых компонентов сборки (а не всего) в другие системы, которым нужны части того, что создает сборка.

После того, как все было свернуто вместе, приятная вещь о сервере Zed заключается в том, что она становится нашей системой, где все знают, откуда взять свои артефакты. Он обрабатывает продвижение от Dev до QA до Production и отслеживает сборки через этот жизненный цикл.

Смежные вопросы