Как я могу использовать функцию Azure DevOps counter
в шаблоне переменной?
До сих пор я использовал функцию counter
для установки переменной в конвейере и значения установлен должным образом - он начинается с 1 и увеличивается каждый раз, когда я запускаю конвейер.
Шаблон переменной - /Variables/variables--code--build-and-deploy-function-app.yml
variables:
- name: major
value: '1'
- name: minor
value: '0'
- name: patch
value: $[counter(format('{0}.{1}-{2}', variables['major'], variables['minor'], variables['Build.SourceBranchName']), 1)]
- name: branch
${{ if eq( variables['Build.SourceBranchName'], 'master' ) }}:
value: ''
${{ if ne( variables['Build.SourceBranchName'], 'master' ) }}:
value: -${{ variables['Build.SourceBranchName'] }}
Однако после перемещения тех же самых переменных в шаблон переменных , значение counter
будет буквальным значением, указанным в шаблоне.
Копание далее в документации по шаблонам я нашел несколько слов о функциях выражения шаблона вместе с примером использования функции -
Вы можете использовать общие функции в ваших шаблонах. Вы также можете использовать несколько функций выражения шаблона.
Учитывая, что counter
указан на странице, на которую ссылается ссылка выше, я предположил, что смогу его использовать. Однако, что бы я ни пробовал, я не могу заставить его работать. Вот несколько примеров -
${{ counter('${{ format('{0}.{1}-{2}', variables['major'], variables['minor'], variables['Build.SourceBranchName']) }}', 1) }}
${{ counter(format('{0}.{1}-{2}', variables['major'], variables['minor'], variables['Build.SourceBranchName']), 1) }}
$[counter('${{ format('{0}.{1}-{2}', variables['major'], variables['minor'], variables['Build.SourceBranchName']) }}', 1)]
Что я делаю не так?
Обновление
Мой шаблон переменной такой же, как указано выше, вот как я использую его в конвейере -
pr: none
trigger: none
variables:
- template: ../Variables/variables--code--build-and-deploy-function-app.yml
name: ${{ variables.major }}.${{ variables.minor }}.${{ variables.patch }}${{ variables.branch }}
Расширенный конвейер, полученный из журналов после запуска, выглядит следующим образом:
pr:
enabled: false
trigger:
enabled: false
variables:
- name: major
value: 1
- name: minor
value: 0
- name: patch
value: $[counter(format('{0}.{1}-{2}', variables['major'], variables['minor'], variables['Build.SourceBranchName']), 1)]
- name: branch
value: -CS-805
name: 1.0.$[counter(format('{0}.{1}-{2}', variables['major'], variables['minor'], variables['Build.SourceBranchName']), 1)]-CS-805
Как видно из расширенного конвейера, переменная patch
не оценивается, в результате чего name
содержит буквальное значение -
введите описание изображения здесь