如何在Azure DevOps环境中配置显示应用版本信息?
解决方案:Azure DevOps环境显示应用版本与更新时间
方案合理性确认
Azure DevOps环境是实现你需求的合适方案,它可以集中跟踪不同环境(git-main、dev、prod)的部署状态、版本信息及更新时间。
问题1:修正“最后活动”时间
Azure DevOps环境的“最后活动”字段默认会自动更新为最后一次成功部署的完成时间,而非环境创建日期。如果当前显示的是创建日期,说明你的流水线还未成功触发过环境更新动作,完成下方配置后,只要部署作业成功执行,该字段会自动更新为最新部署时间。
问题2:状态显示包含应用版本的文本
Azure DevOps环境的状态栏会显示最近一次成功部署的作业显示名称,因此可以通过动态设置部署作业的显示名,将应用版本嵌入其中,实现你想要的格式。具体修改如下:
修改后的完整流水线配置(post-complete.yml)
trigger: branches: include: - main stages: - stage: Build displayName: 'Build Stage' jobs: - job: ExtractVersion displayName: 'Extract Version' steps: - script: | VERSION=$(grep '"version"' backend/package.json | sed -E 's/.*"version": "(.*)",/\1/') echo "Version: $VERSION" # 将版本号设为跨作业可用的输出变量 echo "##vso[task.setvariable variable=VERSION;isOutput=true]$VERSION" # 同时更新构建编号(可选,用于流水线列表显示) echo "##vso[build.updatebuildnumber]$VERSION" displayName: 'Extract Version from package.json' name: ExtractStep - deployment: UpdateEnvironmentDeployment # 动态设置部署作业显示名,包含应用版本 displayName: 'Deploy v${{ dependencies.ExtractVersion.outputs['ExtractStep.VERSION'] }} to git-main' environment: git-main # 依赖版本提取作业,确保能获取到VERSION变量 dependsOn: ExtractVersion strategy: runOnce: deploy: steps: - script: | echo "Successfully deployed version: ${{ dependencies.ExtractVersion.outputs['ExtractStep.VERSION'] }}" displayName: 'Confirm Deployment'
配置说明
- 跨作业传递版本号:在
ExtractVersion作业中,通过task.setvariable命令将VERSION标记为输出变量,确保后续部署作业可以引用。 - 动态部署作业名称:部署作业的
displayName使用表达式引用提取到的版本号,生成类似Deploy v2.13.01 to git-main的名称。 - 自动更新状态与时间:部署成功后,环境页面的状态栏会显示这个带版本的作业名称(自动附带绿色对勾图标),“最后活动”字段会自动更新为本次部署的完成时间。
扩展到dev/prod环境
只需复制上述部署作业,修改environment字段为dev或prod,并调整触发条件(比如dev环境由develop分支触发,prod环境由tag触发)即可实现多环境版本跟踪。
内容的提问来源于stack exchange,提问作者EasterBunnyBugSmasher
相关产品推荐
相关产品推荐

