如何在 Azure Devops 构建管道中用串联版本变量替换令牌
How to replace a token with a concatenated version variable in an Azure Devops Build Pipeline
我的 Azure DevOps 构建管道使用 GitVersion 对构建工件进行版本控制。存在任务会设置 GitVersion 变量,该变量可以访问 GitVersion.MajorMinorPatch 等等。不过,我想要做的是将此变量与 BuildID 连接起来。使用以下命令设置工件名称效果很好:
name: $(GitVersion.MajorMinorPatch).$(BuildID)
下一步我想将版本写入各种配置文件。我安装了 ReplaceToken 插件,它用变量 "Version".
的内容替换了特定的令牌(在我的例子中是#{Version}#)
创建一个名为 Version 且值为“$(GitVersion.MajorMinorPatch).$(BuildID)”的变量只是将变量替换为字符串而不是计算值。我已经尝试在 GitVersion 任务之后运行的作业中设置变量,因此在创建变量时它应该已经存在。
例如
- job: 'Frontend'
dependsOn: 'Preparation'
variables:
Version: $('GitVersion.MajorMinorPatch')
steps:
- bash: echo $(Version)
"Preparation" 作业当前是 运行 GitVersion 任务,因此它存在于其他作业中。
如何将串联的 GitVersion/BuildId-Version 放入配置文件?
问题出在 GitVersion 变量的范围上。我只能在执行任务的作业中访问它。
解决方法:
在 powershell 脚本中连接版本 (GitVersion.MajorMinorPatch + Build.BuildId) 并将其导出到存在 GitVersion 的作业中。
- powershell: echo "##vso[task. variable=Version;isOutput=true]$env:VERSION.$env:BUILD_ID"
env:
VERSION: $(GitVersion.MajorMinorPatch)
BUILD_ID: $(Build.BuildId)
name: SetVersion
displayName: Set Version
将版本映射到依赖作业中的变量:
- job: 'Frontend'
dependsOn: 'Preparation'
variables:
Version: $[ dependencies.Preparation.outputs['SetVersion.Version']]
现在变量版本应该出现在作业中
我的 Azure DevOps 构建管道使用 GitVersion 对构建工件进行版本控制。存在任务会设置 GitVersion 变量,该变量可以访问 GitVersion.MajorMinorPatch 等等。不过,我想要做的是将此变量与 BuildID 连接起来。使用以下命令设置工件名称效果很好:
name: $(GitVersion.MajorMinorPatch).$(BuildID)
下一步我想将版本写入各种配置文件。我安装了 ReplaceToken 插件,它用变量 "Version".
的内容替换了特定的令牌(在我的例子中是#{Version}#)创建一个名为 Version 且值为“$(GitVersion.MajorMinorPatch).$(BuildID)”的变量只是将变量替换为字符串而不是计算值。我已经尝试在 GitVersion 任务之后运行的作业中设置变量,因此在创建变量时它应该已经存在。
例如
- job: 'Frontend'
dependsOn: 'Preparation'
variables:
Version: $('GitVersion.MajorMinorPatch')
steps:
- bash: echo $(Version)
"Preparation" 作业当前是 运行 GitVersion 任务,因此它存在于其他作业中。
如何将串联的 GitVersion/BuildId-Version 放入配置文件?
问题出在 GitVersion 变量的范围上。我只能在执行任务的作业中访问它。
解决方法:
在 powershell 脚本中连接版本 (GitVersion.MajorMinorPatch + Build.BuildId) 并将其导出到存在 GitVersion 的作业中。
- powershell: echo "##vso[task. variable=Version;isOutput=true]$env:VERSION.$env:BUILD_ID" env: VERSION: $(GitVersion.MajorMinorPatch) BUILD_ID: $(Build.BuildId) name: SetVersion displayName: Set Version
将版本映射到依赖作业中的变量:
- job: 'Frontend' dependsOn: 'Preparation' variables: Version: $[ dependencies.Preparation.outputs['SetVersion.Version']]
现在变量版本应该出现在作业中