TeamCity автоматизирует сборку в производство - PullRequest
4 голосов
/ 13 сентября 2011

Недавно пытался настроить сервер сборки, чтобы помочь автоматизировать мое развертывание.

Мой вопрос заключается в том, используют ли люди серверы сборки, такие как TeamCity, для внесения изменений в производственные (WebDeploy) серверы (а также на ваш тестовый сервер)? Если вы это делаете, то каждый раз перестраиваетесь из системы контроля версий или используете файлы сборки, которые вы передали на тестовый сервер (также пришлось бы создавать все файлы web.configs во время сборки для тестового сервера).

Ответы [ 3 ]

3 голосов
/ 14 сентября 2011

Как правило, рекомендуется использовать тот же набор файлов сборки, который вы сгенерировали для развертывания тестовой среды, так и для развертывания prod, поскольку это единственный способ гарантировать, что то, что вошло в сборку, будет согласованным (т.е. между двумя сборками что-то могло быть установлено на сервере сборки, или ваша VCS может вернуть немного другой набор файлов исходного кода).

Лучше всего это достигается в TeamCity с использованием артефактов сборки, которые собирают выходные данные ваших сборок в специальную область хранения, позволяя их перенести в другую конфигурацию сборки для дальнейшего использования. Больше информации в документах TeamCity http://confluence.jetbrains.net/display/TCD6/Build+Artifact

Что касается ваших конфигов, рассмотрите возможность использования конфигурационных преобразований. Это позволяет вам иметь свой вариант Web.config для каждой целевой среды с различными строками подключения, константами среды и т. Д. Подробнее о MSDN http://blogs.msdn.com/b/webdevtools/archive/2009/05/04/web-deployment-web-config-transformation.aspx

Если вы действительно намерены использовать TeamCity для развертывания в своей производственной среде, вы можете рассмотреть возможность блокировки их с помощью разрешений TeamCity, чтобы только ограниченная группа имела доступ для запуска этих конфигураций сборки (в нашем магазине это фактически требование обеспечить разделение обязанностей между командами Dev и Ops). В качестве дополнительной меры предосторожности, установите отдельный агент сборки только для ваших сборок Prod и держите его отключенным до тех пор, пока он вам не понадобится (предотвращает случайный запуск конфигурации сборки prod ... да, я был там вздох ).

0 голосов
/ 15 сентября 2011

Я решил попробовать скрипт MSBuild, который преобразует все конфиги в какое-то место, затем я пытаюсь создать пакет (ну, архив, поскольку я не хочу в виде zip-файла, и это то, из-за чего я борюсь)с на данный момент).

Итак, у меня было бы следующее:

1-я конфигурация TeamCity:

  • Tranform web.configs
  • Сборка по месту
  • MSDeploy для TEST

2-я конфигурация сборки |

  • MSDeploy для работы с файлами сборки и оперативной конфигурацией

Любая помощь в достижении этого была бы очень полезна

0 голосов
/ 13 сентября 2011

В предыдущем проекте мы использовали сначала CruiseControl.net, а затем TeamCity для отправки изменений на наши тестовые серверы, мы использовали специальную цель NAnt для запуска развертывания.

В TeamCity у нас был проект сборки (или он тоже называется target в TeamCity?) С ручным запуском для запуска установки.

Установка была выполнена с помощью удаленного скрипта PowerShell, который установил наши пакеты MSI.

...