2013-12-12 6 views
2

Мы используем Team City в качестве нашего сервера сборки CI и настроили его для успешной сборки и тестирования.Развертывание сборки из TeamCity

Теперь мне поручено развернуть выполненные элементы на нашей производственной VM в Azure. Эти элементы включают код переднего конца (HTML & Javascript), наш код node.js и наши зависимые .NET dll. Это в основном наше веб-приложение от конца до конца, которое мы можем запускать и запускать локально.

Посмотрел на развертывание октопуса, но это проблема, потому что я не знаком с этим инструментом и его не только пакетами nuspec, которые нам нужно развернуть, но и всей структурой папок.

1.) Как я мог бы в TeamCity создать zip-файл этой структуры папок? 2.) Ounce Я создал этот zip-файл, как бы его развернуть на VM и распаковать его

Я относительно новичок в CI, поэтому мне нужно столько советов, сколько я могу получить!

+0

Спасибо, это сработало. BTW, ваш профиль pic причудливый –

ответ

2

Я могу ответить только на первый вопрос, так как мы используем amazon для экземпляров Linux.

В нашем CI среде (Teamcity) мы указываем артефакты в конфигурации сборки -> вкладка Общие настройки -> редактировать артефакты:

path/to/build => latest.zip. 

Teamcity выясняет, что он будет заархивировать папку на основе артефактов расширения. Затем мы загружаем zip-файл на S3.

Второй вопрос, на который я не могу ответить, потому что мы используем linux. Но мы просто создаем виртуальный образ, который при загрузке извлекает файл last.zip из S3, распаковывает его и перезапускает веб-сервер.

Редактировать: Если вы решили развернуть по-другому, обязательно создайте зависимость артефакта с последним.zip-файлом. Вы также можете создавать сборки с настраиваемыми параметрами сборки для развертывания сборки.

2

Для вопроса № 2 существует несколько подходов, которые вы можете предпринять. Я не эксперт в этой области, но лучшее, что я видел для стека Windows, - BuildMaster.

Поэтому я рекомендую это:

  1. он очищает продвижение артефактов и развертывание артефактов; очень ясно, какие сборки были отклонены и которые были продвинуты.

  2. он будет повторно использовать ваши артефакты из TeamCity; поэтому вы позволяете TeamCity делать это здание, и пусть BuildMaster обрабатывает рекламные акции.

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

This screenshot показывает пример плана развертывания, включая шаги до и после развертывания

2

Публикация профилей (MSBuild под капотом) и веб-развертывание - это все, что вам нужно.

Обе технологии MS.Публикация профилей судов как частей развертывания VS и MS может быть легко развернута с помощью службы управления на целевом сервере.

Я рекомендую следующий подход в этой большой серии в блоге Troy Hunt - Your Deploying It Wrong

Я создал этот подход на своих текущих проектах, и это работает мечта. Развертывание Web, как правило, является механизмом доставки по выбору, поэтому я уверен, что вам не составит труда установить это.

Мой шаг MSBuild для развертывания имеет следующие параметры командной строки (с некоторыми параметрами сборки, добавленными для повторного использования). Развертывание занимает 20 секунд!

/P:Configuration=%env.Configuration% 
/P:DeployOnBuild=True 
/P:DeployTarget=MSDeployPublish 
/P:MsDeployServiceUrl=https://%env.TargetServer%/MsDeploy.axd 
/P:AllowUntrustedCertificate=True 
/P:MSDeployPublishMethod=WMSvc 
/P:CreatePackageOnPublish=True 
/P:UserName=INTERNAL\webdeployments 
/P:Password=********* 
/p:SkipExtraFilesOnServer=true 

Надеется, что это помогает