C # /. NET - Непрерывная интеграция и развертывание FTP - PullRequest
6 голосов
/ 04 мая 2009

Примечание: я новичок в непрерывной интеграции

Каков «лучший» подход для получения этих функций:

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

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

Ответы [ 4 ]

5 голосов
/ 21 сентября 2010

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

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, и разработал и протестировал все в ветке перед объединением - таким образом, развертываются только проверенные вещи. Добавьте автоматическое тестирование в свой цикл сборки, и вы получите совпадение на небесах.

2 голосов
/ 04 мая 2009

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

1 голос
/ 04 мая 2009

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

0 голосов
/ 05 мая 2009

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

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

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

...