You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure DevOps发布管道中推送关联标签并展示版本号

在Azure DevOps发布管道中传递Git标签版本号到服务器应用

给你几个实用的方案,都是新手能快速上手的:

方案1:写入版本文件并随应用部署

这是最直接的方式,在发布管道里新增任务获取标签,写入文件后和应用一起传到服务器:

  1. 在发布管道中添加PowerShell或Bash任务(根据服务器系统选择),放在「复制文件到服务器」任务之前。
  2. 用脚本获取当前发布关联的提交对应的Git标签:
    PowerShell脚本示例:
    # 获取发布关联的提交ID(Azure DevOps预定义变量)
    $commitId = "$(Build.SourceVersion)"
    # 拉取所有Git标签(如果管道默认没拉取)
    git fetch --tags
    # 查询该提交对应的标签名
    $tagName = git describe --tags $commitId
    # 将标签写入版本文件,存到构建产物目录
    echo $tagName > $(Build.ArtifactStagingDirectory)/version.txt
    
    Bash脚本示例:
    commitId=$(Build.SourceVersion)
    git fetch --tags
    tagName=$(git describe --tags $commitId)
    echo $tagName > $(Build.ArtifactStagingDirectory)/version.txt
    
  3. 确保后续的「复制文件」任务包含这个version.txt,部署后应用直接读取该文件展示版本号即可。

方案2:通过环境变量传递版本号

如果你的应用支持读取环境变量,可以不用生成文件,直接把标签号注入服务器环境:

  1. 同样用PowerShell/Bash任务获取标签名,然后设置管道变量:
    PowerShell里添加:
    Write-Host "##vso[task.setvariable variable=AppVersion;]$tagName"
    
  2. 在部署服务器的任务中,把变量写入服务器环境:
    • Windows服务器:添加PowerShell任务执行setx AppVersion "$(AppVersion)"
    • Linux服务器:添加Bash任务执行echo 'export AppVersion=$(AppVersion)' >> /etc/profile
  3. 应用启动时读取AppVersion环境变量展示版本。

方案3:构建阶段嵌入版本号(更推荐)

如果你的应用是可编译的,建议在构建管道就把标签号嵌入应用,避免发布阶段额外操作:

  1. 在构建管道的「获取源代码」任务中,确保勾选「获取标签」(或执行git fetch --tags)。
  2. 添加替换任务,比如用「文件替换」任务,把应用配置文件(如appsettings.json)里的版本占位符(比如"Version": "{TAG_VERSION}")替换为获取到的标签名。
  3. 构建完成后,产物里的配置文件已经包含正确版本号,发布时直接部署即可。

注意事项

  • 确保管道有Git命令执行权限,并且仓库克隆时拉取了标签(默认可能只拉取分支,所以需要加git fetch --tags)。
  • 如果一个提交对应多个标签,git describe --tags会返回最新的那个,若需要指定逻辑可以调整脚本。

内容的提问来源于stack exchange,提问作者Rok Bohinc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 14:52:54