Я использую TFS 2013 Update 4, Release Management Client Update 4, Release Management Server Update 4 и Update 4 Агенты развертывания. Я использую ReleaseTfvcTemplate.12.xml.
Когда разработчик регистрирует код, TFS Build компилирует код, и если он завершается, он передается на стадию DEV. Это прекрасно работает. Однако включение электронной почты создает проблему.
Допустим, мне нужно уведомить 10 человек о развертывании, а затем отправить этим же 10 людям электронные письма с «одобрением» после того, как развертывание будет принято, что происходит автоматически. Это 20 писем.
Я включил подробное ведение журнала на сервере RM и вижу, что отправка каждого письма занимает 30 секунд. Они отправляются по одному, один за другим. Таким образом, для отправки двадцати электронных писем требуется десять минут.
Электронные письма начинают отправляться, как только начинается развертывание. Фактическое развертывание обычно занимает около 1 минуты. Управление выпуском помечает сборку как развернутую и продолжает отправлять электронные письма «развертывание» и «утверждение». Тем временем журнал конфигурации сборки TFS застрял в ожидании по адресу:
Обработать каждый выпуск ConfigurationsToRelease. Выпустить сборку. Запустить процесс сборки управления выпусками для текущей конфигурации.
Если развертывание завершает свои электронные письма, потому что они отключены или нужно отправить только 3-4, то журнал конфигурации сборки TFS завершает выпуск, и сборка помечается как успешная. Однако TFSBuild будет ждать только 5 минут в части «Выпуск сборки» рабочего процесса ReleaseTfvcTemplate. Если для отправки 20 электронных писем требуется больше 5 минут, что происходит, сборка завершается ошибкой. Как увеличить этот таймаут? Я увеличил время ожидания для каждого компонента/инструмента, который смог найти в управлении релизами. Я даже изменил некоторые настройки времени ожидания web.config.
Конечным результатом является то, что я получаю развернутый код, Управление релизами считает, что все прошло нормально, а TFS Build считает, что сборка не удалась.
Редактировать:
Вот несколько строк, которые я вытащил из подробных журналов сервера RM. Обратите внимание на временные метки. (Я вырезал несколько строк)
На вкладке «Администрирование» в разделе «Настройки» есть параметр «Тайм-аут развертывания триггера TFS». Если вы увеличите это значение, сборка не завершится сбоем через 5 минут.