Существует так много методов для поддержки сред сборки, поэтому вам кажется, что вам будет чрезвычайно трудно получить подход отраслевого стандарта.Я остановился на использовании образов виртуальных машин и контейнеров для обеспечения стабильных, воспроизводимых сред.
System Center и реестр контейнеров используются для хранения артефактов, и я каждую ночь прокладываю десятки серверов сборки для восстановленияобразы виртуальных машин, таким образом, гарантируют, что изо дня в день создаются одни и те же цепочки инструментов.
Для обновлений создается новый образ с новым набором инструментов, который затем тестируется изолированно, прежде чем сделать его образом по умолчанию.Если цепочка инструментов поддерживает параллельную установку, такую как MSBuild, Typescript и т. Д., Тогда существует очень низкий риск поломки, поскольку изоляция этих инструментов очень хорошая.Я также обнаружил, что если файлы проекта нацелены на определенные цепочки инструментов вместо того, чтобы автоматически переходить на последнюю версию, тогда ваша жизнь будет гораздо более приятной.
Некоторые инструменты в этой области менее звездны и имеют тенденцию загрязнять окружающую среду.или ограничить вас одной версией инструмента.Для этого я фиксирую их контейнеры, если это возможно.Если это невозможно, то эти инструменты получают новый образ и новый набор блоков CI, предназначенных для этого инструмента.
В общем, я подписываюсь на модель извлечения для обновлений, где программное обеспечение обновляется вручную.Это очень важно, когда обслуживает многих разработчиков по всему миру, и среда CI просто не может быть ненадежной из-за самообновления.