【发布时间】:2021-04-21 18:05:39
【问题描述】:
我尝试更改定义变量的语法,但不再设置变量。我认为如果我还使用变量组或模板,我只需要使用“名称,值”语法而我没有,所以我想使用“键:值”语法,因为它更具可读性。
但是,当我切换到更易读的语法时,Private.RevisionVersion、pythonPackageVersion 和 nugetPackageVersion 变量没有被设置(如第一个代码 sn-p 的输出所示)。
“key:value”语法(不工作):
variables:
Private.MajorMinorVersion: 1.2
isFinalRelease: false
isReleaseCandidate: false
isAlpha: true
${{ if eq(variables['isFinalRelease'], 'true') }}:
Private.RevisionVersion: $[counter(variables['Private.MajorMinorVersion'], 0)]
pythonPackageVersion: $[format('{0}.{1}', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]
nugetPackageVersion: $[format('{0}.{1}', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]
${{ if eq(variables['isReleaseCandidate'], 'true') }}:
Private.RevisionVersion: $[counter(format('{0}rc', variables['Private.MajorMinorVersion']), 1)]
pythonPackageVersion: $[format('{0}rc{1}', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]
nugetPackageVersion: $[format('{0}.{1}-rc', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]
${{ if eq(variables['isAlpha'], 'true') }}:
Private.RevisionVersion: $[counter(format('{0}a', variables['Private.MajorMinorVersion']), 1)]
pythonPackageVersion: $[format('{0}a{1}', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]
nugetPackageVersion: $[format('{0}.{1}-a', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]
jobs:
- job: Echo_Variables
steps:
- script: echo $(Private.MajorMinorVersion) $(isFinalRelease) $(isReleaseCandidate) $(isAlpha)
- script: echo $(Private.RevisionVersion) $(pythonPackageVersion) $(nugetPackageVersion)
输出:
echo 1.2 False False True
echo $(Private.RevisionVersion) $(pythonPackageVersion) $(nugetPackageVersion)
Private.RevisionVersion、pythonPackageVersion 和 nugetPackageVersion 变量未设置。
“名称,值”语法(工作):
variables:
- name: Private.MajorMinorVersion
value: 1.2
- name: isFinalRelease
value: false
- name: isReleaseCandidate
value: false
- name: isAlpha
value: true
- name: Private.RevisionVersion
${{ if eq(variables['isFinalRelease'], 'true') }}:
value: $[counter(variables['Private.MajorMinorVersion'], 0)]
${{ if eq(variables['isReleaseCandidate'], 'true') }}:
value: $[counter(format('{0}rc', variables['Private.MajorMinorVersion']), 1)]
${{ if eq(variables['isAlpha'], 'true') }}:
value: $[counter(format('{0}a', variables['Private.MajorMinorVersion']), 1)]
- name: pythonPackageVersion
${{ if eq(variables['isFinalRelease'], 'true') }}:
value: $[format('{0}.{1}', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]
${{ if eq(variables['isReleaseCandidate'], 'true') }}:
value: $[format('{0}rc{1}', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]
${{ if eq(variables['isAlpha'], 'true') }}:
value: $[format('{0}a{1}', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]
- name: nugetPackageVersion
${{ if eq(variables['isFinalRelease'], 'true') }}:
value: $[format('{0}.{1}', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]
${{ if eq(variables['isReleaseCandidate'], 'true') }}:
value: $[format('{0}.{1}-rc', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]
${{ if eq(variables['isAlpha'], 'true') }}:
value: $[format('{0}.{1}-a', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]
jobs:
- job: Echo_Variables
steps:
- script: echo $(Private.MajorMinorVersion) $(isFinalRelease) $(isReleaseCandidate) $(isAlpha)
- script: echo $(Private.RevisionVersion) $(pythonPackageVersion) $(nugetPackageVersion)
输出:
echo 1.2 False False True
echo 1 1.2a1 1.2.1-a
据我所知,这些在语义上是相同的。我错过了什么?
【问题讨论】:
标签: azure-devops yaml azure-pipelines azure-pipelines-yaml