Я думал, что они переопределяют исходные значения, определенные в конвейере.
Да, исходные значения переменных переопределяются во время очереди.
Согласно imgs вы показали, что IsProductionRelease
рассчитывается как 'False', которое также генерируется в вашем скрипте powershell, это означает, что ваша переменная времени в очереди работает правильно, единственная другая часть находится в вашей третьей img, она почему-то меняется на 'true' .
Я создал демонстрацию, к которой вы можете обратиться:
SourceBranch
настроен на ветку master
:
Переменная IsProductionRelease
:
В первом тесте значение переменной не изменилось:
Variables:
IsProductionRelease:
Parsing expression: <startsWith(variables['Build.SourceBranch'],'refs/heads/release')>
Evaluating: startsWith(variables['Build.SourceBranch'], 'refs/heads/release')
Expanded: startsWith('refs/heads/master', 'refs/heads/release')
Result: 'False'
И PowerShell также возвращает значение False:
Is Producetion Release = False
Во втором тесте измените значение IsProductionRelease
на $[startsWith(variables['Build.SourceBranch'],'refs/heads/master')]
:
Расчетный результат:
Variables:
IsProductionRelease:
Parsing expression: <startsWith(variables['Build.SourceBranch'],'refs/heads/master')>
Evaluating: startsWith(variables['Build.SourceBranch'], 'refs/heads/master')
Expanded: startsWith('refs/heads/master', 'refs/heads/master')
Result: 'True'
И PowerShell возвращает 'True'
Is Producetion Release = True
Пожалуйста, проверьте ваш весь процесс снова.