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

Azure DevOps Pipeline制品如何发布至Artifacts页面并指定SemVer版本

Azure DevOps Pipeline制品发布问题解答

1. 让制品显示在Artifacts页面

你当前用的publish步骤生成的是Pipeline Artifacts,这类制品和具体的构建/发布运行绑定,只会出现在对应管道的运行详情里,不会显示在Azure Artifacts主页面(这个页面展示的是Feed中的包,比如通用包、NuGet等)。要让制品出现在Artifacts页面,你需要把它发布到Azure Artifacts Feed中,推荐用通用包(Universal Package)来实现:

操作步骤:

  • 先在Azure DevOps的Artifacts模块里创建一个Feed(如果还没有的话)。
  • 修改Pipeline配置,替换原来的publish步骤为UniversalPackages任务:
steps:
- script: ./something.sh
  displayName: build
# 替换原publish步骤为通用包发布任务
- task: UniversalPackages@0
  displayName: Publish to Azure Artifacts Feed
  inputs:
    command: 'publish'
    # 你的构建产物目录
    publishDirectory: '$(System.DefaultWorkingDirectory)/app/build'
    # 格式:项目名称/Feed名称,比如 'MyDevOpsProject/MyPackageFeed'
    vstsFeedPublish: '你的项目/你的Feed'
    # 包名称,和你之前的MyPackage对应
    vstsFeedPackagePublish: 'MyPackage'
    # 版本选项选custom,方便指定SemVer
    versionOption: 'custom'
    # 示例版本号,后面讲动态生成SemVer
    versionPublish: '1.0.0'

发布完成后,你就能在Azure Artifacts页面的对应Feed里找到这个包了。

2. 指定SemVer版本号

上面的通用包发布任务支持直接使用SemVer格式的版本号,你可以通过两种方式灵活设置:

方式一:用预定义变量快速生成

直接在versionPublish里填写符合SemVer规范的版本,或者结合Azure DevOps预定义变量动态生成:

versionPublish: '1.0.$(Build.BuildId)'

这样每次构建都会生成1.0.xxx格式的版本,其中xxx是自动递增的构建ID。

方式二:脚本动态生成版本(更灵活)

如果需要基于Git标签、分支名等生成版本,可以先通过脚本提取或计算版本号,存入变量后再传给发布任务:

steps:
- script: ./something.sh
  displayName: build
# 脚本从Git标签提取SemVer版本(假设标签格式为v1.0.0)
- script: |
    TAG=$(git describe --tags --abbrev=0)
    VERSION=${TAG#v} # 去掉前缀v,得到纯版本号1.0.0
    echo "##vso[task.setvariable variable=PackageVersion]$VERSION"
  displayName: Generate SemVer Version
# 使用生成的版本号发布
- task: UniversalPackages@0
  displayName: Publish to Azure Artifacts Feed
  inputs:
    command: 'publish'
    publishDirectory: '$(System.DefaultWorkingDirectory)/app/build'
    vstsFeedPublish: '你的项目/你的Feed'
    vstsFeedPackagePublish: 'MyPackage'
    versionOption: 'custom'
    versionPublish: '$(PackageVersion)'

注意事项:

  • 确保管道的服务账号(比如Project Collection Build Service)拥有对应Feed的发布权限,否则会发布失败。
  • SemVer版本号要符合规范,不能包含空格、@等特殊字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 09:57:37