В качестве обходного пути вы можете использовать несколько заданий (если ваш конвейер имеет несколько заданий, вы можете использовать несколько этапов) в своем конвейере для достижения вышеуказанного требования.
Добавить дополнительное задание (или этап) (ie. Задание A), чтобы получить теги, связанные с коммитом. А затем используйте скрипт проверки, если тег имеет определенный формат, если нет, то не удается выполнить задание. Тогда и установить другую работу зависит от этой работы. Проверьте здесь для получения дополнительной информации о зависимостях и условиях
Так что ваше задание (ie .Job B), которое создает ваш проект, будет выполнено только в том случае, если дополнительное задание выполнено успешно. Пожалуйста, проверьте ниже пример yaml:
trigger:
branches:
include:
- dev
pool:
vmImage: "ubuntu-latest"
jobs:
- job: A
steps:
- powershell: |
#get the tags associated to the commit
$tags = git describe --exact-match $(Build.SourceVersion)
# check the tag format
if($($tags) -notmatch '.\...\...\..'){exit 1}
- job: B
dependsOn: A
condition: succeeded('A')
steps:
- powershell: |
$tags = git describe --exact-match $(Build.SourceVersion)
echo $($tags)