TFS 2010 и «построить один раз, развернуть много» - PullRequest
6 голосов
/ 11 января 2012

Я провел много исследований по этому вопросу, но не смог найти какое-либо комплексное решение для реализации «постройки один раз и развертывание многих» с использованием TFS 2010.

По сути, я думаю о том, чтобы иметь определение сборки, которое будет строить решение с несколькими проектами, которые будут развернуты (веб-приложение + проект базы данных + веб-сервис + отчеты), поместить выходные данные в папку удаления и оттуда на основе Качество и версия вручную решают развернуть все проекты в различных средах (qa, ua, staging, production).

Я знаю, что могу изменить шаблон процесса сборки для развертывания сразу нескольких проектов сразу после сборки, например, «Построить основную версию и развернуть в QA», «Построить основную и развернуть в UA» и т. Д., Основываясь, вероятно, на наборе изменений # или метках но это значит строить каждый раз. То, что я хотел бы, больше похоже на информационную панель, которая позволит группе развертывания развернуть точную сборку, которая была протестирована в QA, в среде UA и после получения разрешения на развертывание ее в рабочей среде. Конечно, это означает, что файлы конфигурации должны быть соответствующим образом обновлены во время развертывания.

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

Ответы [ 3 ]

2 голосов
/ 11 января 2012

Это достаточно близко к тому, что мы используем, у нас есть шаблоны сборки для выполнения реальных сборок и развертывания шаблонов, которые развертывают выходные данные на различных машинах (их можно настроить на запуск в запланированное время, например, ночные отбрасывания в QA и т. Д., Или спрос такой как UAT / live). Шаблоны сильно изменены по сравнению со стандартными, мы просто вводим детали из сборок (или, в некоторых случаях, вы можете взять последние сборки, такие как тестовая среда), такие как места размещения.

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

В качестве примера у вас может быть сборка, которая встраивает ваше приложение в исполняемый файл, и шаблон, который берет исполняемый файл и запускает его на вашей цели (используя InvokeProcess). Если вам нужно развернуть то же самое в другой среде, вы просто используете то же место размещения, альт!

То, что у вас есть, вовсе не звучит странно, имеет смысл с этим справиться.

1 голос
/ 22 мая 2014

Я знаю, что это запоздалый ответ, но с 2012 года все изменилось. Microsoft предлагает Release Management, предлагающее , которое разработано с нуля, чтобы обеспечить возможность «построить один раз, развернуть много». Модификация шаблонов процесса сборки - это всегда боль.

0 голосов
/ 12 января 2012

Ответ Даниэля в значительной степени является стандартным способом заставить систему сборки, такую ​​как TeamBuild, обрабатывать развертывания. Это немного странно, потому что вы сгибаете инструмент для другой цели. Это может определенно работать, хотя.

Другой подход - получить чистый инструмент развертывания, который интегрируется с TFS / TeamBuild. Развертывание в разных средах было бы естественным, но тогда у вас есть два инструмента для управления.

...