Можно ли динамически установить источник в Azure Repos Git?

Я ищу решение для динамического выбора ветки для построения в конвейере Azure. У меня есть Azure Repos Git, где я выбираю проект, репозиторий и ветку по умолчанию. Я хотел бы иметь возможность выбирать ветку на основе переменной.

Сейчас я пытаюсь использовать задачу Command Line и запустить команду git checkout (например, ветка - это переменная):

git checkout $(branch)

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


person Lukasz 'Severiaan' Grela    schedule 02.10.2019    source источник


Ответы (1)


Обновление:

Если вы хотите иметь один конвейер, который может создавать разные ветви (ветки версий) для разных ветвей, вы можете просто указать их в триггере фильтров ветвей. Это не приведет к созданию всех ветвей.

Ветвь, которую вы выбираете в определении сборки, - это просто ветка по умолчанию, используемая, когда вы ставите новую сборку в очередь вручную. OTOH триггер сборки определяет, какую ветку загружать, например если сборка была вызвана git push on branch develop, то это тот, который проверяется и строится. Взгляните на эту ссылку: Получите исходные коды из ветки, которая запустила сборку в Team Services

Кроме того, вы можете отключить шаг получения исходного кода по умолчанию. Затем использовать собственный сценарий PowerShell и команду git, чтобы вручную получить исходный код (именно то, что вы хотите) и проверить ветку, наконец, построить на основе вашей переменной.


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

Вы можете выбрать, какие ветви отслеживать для CI (на вкладке «Триггеры» вы можете добавить несколько фильтров веток для представления ветвей, которые вы хотите построить при фиксации), и соответствующая ветка будет проверена при запуске сборки. Вы также можете выбрать альтернативную ветвь при постановке сборки в очередь вручную.

Ссылка на источник: Получение исходников из нескольких веток

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

введите описание изображения здесь

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

Ветвь по умолчанию не имеет значения, когда сборка запускается через непрерывную интеграцию (CI). Обычно вы устанавливаете то же самое, что и ветвь по умолчанию репозитория (например, "master") .

Здесь есть соответствующий голос пользователя: При запуске сборки используйте ту же ветвь, что и триггерная сборка. Вы можете проголосовать за и отслеживать процесс.

person PatrickLu-MSFT    schedule 03.10.2019
comment
Я хочу иметь один конвейер, который может создавать разные ветки (ветки версий), а не все из них. Мы можем начать сборку с набором переменных, поэтому я подумал, что с помощью TFVC мы могли бы передать эту переменную для выбора источника. - person Lukasz 'Severiaan' Grela; 03.10.2019
comment
@ Lukasz'Severiaan'Grela Вы можете для разных веток просто указать их в триггере. Ветвь, которую вы выбираете в определении сборки, - это просто ветка по умолчанию, используемая, когда вы ставите новую сборку в очередь вручную. OTOH триггер сборки определяет, какую ветку загружать, например если сборка была вызвана git push on branch develop, то это тот, который проверяется и строится. Взгляните на эту ссылку stackoverflow.com/questions/44133816/ - person PatrickLu-MSFT; 03.10.2019
comment
@ Lukasz'Severiaan'Grela Если вы настаиваете на использовании переменного решения, вы можете отключить шаг получения исходного кода по умолчанию в конвейере Azure DevOPs stackoverflow.com/questions/ 46421482 / Затем используйте собственный сценарий PowerShell и команду git, чтобы получить исходный код и проверить ветку для сборки на основе вашей переменной. - person PatrickLu-MSFT; 03.10.2019
comment
Включите эти инструкции в ответ, я рад рассматривать это как ответ, спасибо. - person Lukasz 'Severiaan' Grela; 03.10.2019
comment
@ Lukasz'Severiaan'Grela Готово, спасибо за любезный ответ. - person PatrickLu-MSFT; 03.10.2019