2010-07-15 2 views
5

ОК, я искал несколько дней и до сих пор не нашел того, что, по моему мнению, будет изящным решением этой проблемы.Развертывание на удаленном сервере с использованием msbuild в teamcity

Вот что я хочу.

  • Я хочу TeamCity построить свой код
  • Затем проверить его
  • Затем развернуть его на удаленном сервере.

Первые 2 являются легкими, но никто, кажется, не имеет подходящего варианта для развертывания. Я настроил сервер с поддержкой веб-развертывания (ранее он был известен как msdeploy?), И с моей локальной машины я могу опубликовать его на удаленном сервере.

В идеале я хотел бы, чтобы teamcity мог позволить удаленному изданию веб-сайта после успешного создания и тестирования.

Скажите, пожалуйста, у кого-нибудь есть решение проблемы! Я рад, что почти пятница, так как я близок к слезам и нуждаюсь в спирте, чтобы помочь мне.

Заранее спасибо.

ответ

1

Я работаю над тем же вопросом. До сих пор у меня есть два уродливых решения:

1) Используйте папку с фиксированным рабочим каталогом. Затем код всегда компилируется в одно и то же место. Сделайте XCOPY/FTP из папки bin \ RELEASE на ваш целевой сервер или папку.

2) Напишите сценарий, который ищет папку с артефактом, используя большой номер версии (999), а затем проверяя каждый номер меньшей версии, пока не найдете папку с этим номером версии. Это также можно сделать для URL-адреса, если вы получаете свои артефакты через curl & веб-страницу артефактов.

3) Задавайте вопросы на таких сайтах, пока я не смогу узнать какое-либо свойство msbuild, переменную окружения или другое подобное устройство, чтобы получить к нему URL-адрес артефакта или путь к файловой системе (понимая, что teamcity поддерживает построение на фермах серверов, поэтому файл системному пути, возможно, потребуется указать имя UNC, чтобы точно знать, откуда оно взялось)

+0

Что вы в конечном итоге с помощью? –

+1

Я использую # 1, фиксированную папку рабочего каталога. Если я создаю ветку, я создаю новую фиксированную папку рабочего каталога, а затем обновляю сценарий развертывания пост-сборки с расположением ветки. # 3 был бы самым элегантным, но обнаружил бы правильный способ ссылаться на переменные msbuild, teamcity и OS, поскольку один идет от msbuild до партии в powershell, но все же я не очень хорош. – MatthewMartin

2

Мы делаем что-то очень похожее, но отделяем последнюю задачу от собственной сборки, на которой планируется развернуть наиболее неудачную успешную сборку на ночной основе, чтобы остановить работу сайта каждый раз, когда разработчик совершает. Мы не использовали MSDeploy но вы можете найти следующие ссылки ПОЛЕЗНЫЕ:

Automated deployments with TeamCity, Deployment projects & SVN

Web Deployment Made Awesome: If You're Using XCopy, You're Doing It Wrong

Web Packaging: Creating web packages using MSBuild

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