Azure 管道使用表达式而不是值
Azure pipeline uses expression and not value
我使用以下 azure 管道(为测试而简化):
parameters:
- name: BUILD_QUALITY
displayName: What is the build quality?
type: string
default: "alpha"
values:
- alpha
- beta
- preview
- release
trigger: none
variables:
solution: "**/*.sln"
buildPlatform: 'Any CPU'
buildConfiguration: "Release"
patch: $[counter(variables['CustomVersion'], 1)]
versionNumber: $(Year:yyyy).$(Month).$(DayOfMonth)
${{ if eq( parameters['BUILD_QUALITY'], 'release') }}:
VERSION_NUMBER: ${{ variables.versionNumber }}.$(patch)
${{ else }}:
VERSION_NUMBER: ${{ variables.versionNumber }}.$(patch)-${{parameters['BUILD_QUALITY']}}
name: Test_${{ variables.versionNumber }}.$(patch)
pool:
vmImage: "windows-latest"
stages:
- stage: buildCliTool
jobs:
- job: cliTool
steps:
- script: echo "versionNumber is ${{ variables.versionNumber }}"
- script: echo "Build name is $(Build.BuildNumber)"
- stage: buildNuget
jobs:
- job: nuget
steps:
- script: echo "versionNumber is $(versionNumber)"
- script: echo "versionNumber is $(VERSION_NUMBER)"
脚本步骤用于检查变量值是否正确。
但是,他们只为表达式 - script: echo "Build name is $(Build.BuildNumber)"
打印正确的值
在所有其他情况下,输出不是值,而是表达式本身。
我想在我的阶段使用 versionNumber
,但现在它没有适当的价值。
请有人建议,我应该如何使用该变量来获取值,而不是表达式主体?
问题在于您在此变量中使用的标记:
versionNumber: $(Year:yyyy).$(Month).$(DayOfMonth)
那些 year、month 和 dayofmonth 标记 – 你不能在普通变量,仅当 defining a build number:
You can use these tokens only to define a run number; they don't work anywhere else in your pipeline.
我使用以下 azure 管道(为测试而简化):
parameters:
- name: BUILD_QUALITY
displayName: What is the build quality?
type: string
default: "alpha"
values:
- alpha
- beta
- preview
- release
trigger: none
variables:
solution: "**/*.sln"
buildPlatform: 'Any CPU'
buildConfiguration: "Release"
patch: $[counter(variables['CustomVersion'], 1)]
versionNumber: $(Year:yyyy).$(Month).$(DayOfMonth)
${{ if eq( parameters['BUILD_QUALITY'], 'release') }}:
VERSION_NUMBER: ${{ variables.versionNumber }}.$(patch)
${{ else }}:
VERSION_NUMBER: ${{ variables.versionNumber }}.$(patch)-${{parameters['BUILD_QUALITY']}}
name: Test_${{ variables.versionNumber }}.$(patch)
pool:
vmImage: "windows-latest"
stages:
- stage: buildCliTool
jobs:
- job: cliTool
steps:
- script: echo "versionNumber is ${{ variables.versionNumber }}"
- script: echo "Build name is $(Build.BuildNumber)"
- stage: buildNuget
jobs:
- job: nuget
steps:
- script: echo "versionNumber is $(versionNumber)"
- script: echo "versionNumber is $(VERSION_NUMBER)"
脚本步骤用于检查变量值是否正确。
但是,他们只为表达式 - script: echo "Build name is $(Build.BuildNumber)"
在所有其他情况下,输出不是值,而是表达式本身。
我想在我的阶段使用 versionNumber
,但现在它没有适当的价值。
请有人建议,我应该如何使用该变量来获取值,而不是表达式主体?
问题在于您在此变量中使用的标记:
versionNumber: $(Year:yyyy).$(Month).$(DayOfMonth)
那些 year、month 和 dayofmonth 标记 – 你不能在普通变量,仅当 defining a build number:
You can use these tokens only to define a run number; they don't work anywhere else in your pipeline.