Мы используем TFS 2017 с обновлением 3 для CI и CD. Наш сборочный сервер имеет двух агентов. На данный момент у нас есть только несколько автоматических выпусков, но мы работаем над добавлением новых. Типичный выпуск имеет 3 среды, и каждая среда имеет X фаз для логического разделения / группировки действий. Например:
- Фаза 1 - Замена токенов (загрузка артефактов и замена токенов)
- Этап 2 - развертывание базы данных (пропускает загрузку артефактов, использует выходные данные этапа 1 и развертывает базу данных)
- Этап 3 - развертывание службы (пропускает загрузку артефактов, использует выходные данные этапа 1 и развертывает службу)
До недавнего времени, потому что у нас только несколько выпусков, только один выпуск происходил за раз, и он работал нормально. Сегодня вечером я получил немного.
Произошло то, что релиз 1 был запущен, а когда он находился в фазе 3, релиз 2 был поставлен в очередь. Релиз 2 начал Фазу 1 на Агенте 2, потому что Агент 1 использовался Релизом 1. Когда Релиз 2 добрался до Фазы 2, Агент 1 теперь был свободен, поэтому он выполнил Фазы 2 и 3 на Агенте 1. Это привело к Фазам 2 и 3 Выпуск 2 работает из папки, в которой выполнялся выпуск для предыдущей среды, что приводит к копированию неправильных настроек в целевую среду. Надеюсь, это понятно. По сути настройки QA были скопированы в PROD.
Я полагал, что все фазы среды начинаются и заканчиваются на одном и том же агенте.
Итак, чтобы достичь «Сродства к агенту», мой единственный вариант - использовать 1 фазу? Я буду скучать по логическому разделению шагов. Я нигде не вижу, как я могу это контролировать.
Заранее спасибо за помощь.