VSTS построена из нескольких репозиториев

У меня есть два репозитория: один в TFVC и еще один в Git. Существуют особые технические причины для их раздельного хранения.

Код в TFVC построен на частном агенте сборки, а код в Git построен на размещенном агенте. Поэтому в настоящее время у меня есть две независимые сборки, и результаты их развертываются вместе в определении выпуска.

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

Есть ли способ достичь этого?

Ответ 1

На данный момент нет способа указать несколько репозиториев на шаге Получить источники. И есть голос пользователя Разрешить сборку TFS, чтобы зависеть от нескольких репозиториев, который предлагает аналогичную функцию, вы можете голосовать и следить.

Обходной путь на данный момент - вручную получить файлы из другого репозитория.

Например, если вы указали репозиторий TFVC на шаге "Получение источников", вы можете добавить задачу PowerShell в начале задач и клонировать другое репозиторий git с помощью git clone <repo URL> и т.д.

Ответ 2

TFVC

И обратный ответ Марины тоже возможен. После привязки определения вашей сборки к Git по умолчанию вы можете добавить скрипт powershell, чтобы отобразить рабочее пространство и извлечь источники:

tf workspace /new /noprompt /location:local /permission:private <name>
tf workfold /map $/Server/Path "$(Agent.BuildDirectory)\tfvc" /workspace:<name>
tf get "$(Agent.BuildDirectory)\tfvc"

И добавьте "всегда запускать задачу", чтобы потом очистить рабочее пространство:

tf workspace /delete <name>
rd /s /q "$(Agent.BuildDirectory)\tfvc"

Скачать артефакт

Другой вариант - использовать задачу "Скачать артефакт" для загрузки артефактов из следующего расширения: Артефакты TFS для управления выпусками.

Или задача Download Artifact, поставляемая с VSTS, хотя для этого требуется ссылка на определение сборки для загрузки, что означает, что вы можете создать CI-сборку на Git или TFVC, которая строит исходники, или просто присоединить каталог исходников, затем получить тех, кто находится в "другой" сборке.

Ответ 3

Вы действительно хотите создать оба РЕПО одновременно и объединить артефакты сборки? Или вы просто хотите использовать одно и то же определение для разных источников?

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

Я бы рекомендовал создать группу задач с вашими задачами, которые у вас есть. Затем создайте отдельные определения сборки, которые ссылаются на группу задач.