#azure #azure-devops
#azure #azure-devops
Вопрос:
В конвейерах Azure есть выражения и условия, но я не могу найти способ присвоить переменной одно из двух значений параметра на основе условия.
Могу ли я в любом случае добиться этого?
parameters:
- name: major
displayName: " Major Version(Default 3)"
type: string
default: 3
- name: minor
displayName: 'Minor Version(Default 15)'
type: string
default: 15
values:
- 15
- 16
- 17
- 18
- 19
- name: patch
displayName: 'Patch Version(Default 0)'
type: string
default: 0
- name: checksum
displayName: 'Pattern is minor version.patch version, checksum'
type: string
values:
- '15.0, 8003fcfe34dc224be816921e9543fa58ba195653'
- '18.1, d8e42f7a7b85ad72ba27117d1f13a790228f1369'
- '19.0, 4e66eeedba4e1f3ea26cadb0c2bfa96264e7c8fb'
variables:
major: ${{ parameters.major }}
minor: ${{ parameters.minor }}
patch: ${{ parameters.patch }}
finalChecksum : ${{ if contains(parameters.checksum, parameters.minor.parameters.patch) }}: parameters.checksum.split(',')[1]
что мне нужно, так это finalchecksum
: (поскольку проверка работает нормально)
if parameter.checksum contains/startsWith minor.patch:
then
finalchecksum = parameters.checksum.split(',')[1]
итак, здесь,
если младшая версия и версия исправления равны 18.1, то итоговая контрольная сумма = d8e42f7a7b85ad72ba27117d1f13a790228f1369
В моей задаче у меня есть что-то вроде этого :
- bash: |
echo $(finalChecksum)
Затем выводится сообщение об ошибке ниже:
Line 1: `echo True:15.0, 8003fcfe34dc224be816921e9543fa58ba195653.Split(",")[0]'
Все, что меня интересует в печати checksum
, и я даже не знаю parameters.checksum.split(',')[1]
, существует в мире AzDo. Любые предложения были бы замечательными.
Ответ №1:
Для замены переменной можно использовать встроенные функции. В моем примере я использовал функции replace и format . Вот моя конфигурация:
parameters:
- name: major
displayName: " Major Version(Default 3)"
type: string
default: 3
- name: minor
displayName: 'Minor Version(Default 15)'
type: string
default: 15
values:
- 15
- 16
- 17
- 18
- 19
- name: patch
displayName: 'Patch Version(Default 0)'
type: string
default: 0
- name: checksum
displayName: 'Pattern is minor version.patch version, checksum'
type: string
values:
- '15.0, 8003fcfe34dc224be816921e9543fa58ba195653'
- '18.1, d8e42f7a7b85ad72ba27117d1f13a790228f1369'
- '19.0, 4e66eeedba4e1f3ea26cadb0c2bfa96264e7c8fb'
variables:
major: ${{ parameters.major }}
minor: ${{ parameters.minor }}
patch: ${{ parameters.patch }}
format: $[format('{0}.{1}, ', variables['minor'], variables['patch'])]
${{ if contains(parameters.checksum, parameters.minor.parameters.patch) }}:
finalChecksum : $[replace('${{parameters.checksum}}',variables['format'],'')]
Результат echo $(итоговая контрольная сумма):
Кроме того, я следовал этому документу, чтобы условно назначить переменную.