как настроить задачи определения сборки / tfs для правильной обработки отключенного агента сборки - PullRequest
0 голосов
/ 04 апреля 2020

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

мы настроили tfs2018 для размещения кода и автоматических сборок, в настоящее время мы решаем ситуацию следующим образом:

у нас есть узел hyper-v, на котором запущено несколько vms, на каждом vm установлены все необходимые наборы инструментов. каждый vm имеет свой собственный buildagent, зарегистрированный в пуле агентов tfs. когда нам нужна новая сборка, виртуальная машина восстанавливается до ранее сохраненного снимка, извлекает репозиторий, собирает и развертывает сгенерированные двоичные файлы.

Проблема в этом случае заключается в том, что нам нужно восстановить виртуальную машину до чистого состояния, прежде чем мы начнем сборка. в этот момент агенту сборки уже назначен, и как только мы восстанавливаем vm, соединение от агента к tfs закрывается, и сборка завершается неудачей.

то, что мы делали в прошлом для решения вышеуказанной проблемы, было грязным Обходной путь, мы создали второе определение сборки, которое выполняется на фиктивном агенте сборки, восстанавливает целевой vm и оправдывает реальную сборку на реальном агенте сборки, как только виртуальный компьютер сбрасывается в чистое состояние.

из того, что у меня есть прочитайте, что есть возможность добавлять задачи / фазы без агентов в определение / конвейер сборки, однако это не обеспечивает требуемый тип задачи (нам нужно либо установить сеанс sh как sh для хоста hyper-v, либо использовать powershell удаленный скрипт (s sh предпочтительно))

есть ли возможность решить вышеуказанную проблему без использования второго фиктивного агента?

Сама проблема не так уж сложна, нам просто нужен fre sh среда для каждой сборки, чтобы избежать проблем из-за конфликтов версий.

спасибо:)

1 Ответ

1 голос
/ 04 апреля 2020

Добавьте дополнительную фазу в ваше определение, которая запускается перед фазой группы развертывания. Обратитесь к документации .

...