You need to enable JavaScript to run this app. AppVeyor推送tag时构建产物命名规则不同如何配置?
优惠活动
大模型
产品
解决方案
定价
更多

AppVeyor推送tag时构建产物命名规则不同如何配置?

AppVeyor 区分普通构建与Tag构建的产物命名配置方案

你可以通过AppVeyor原生支持的条件配置语法实现需求,有两种常用实现方案:

方案一:分开声明两套产物规则

直接在artifacts节点下为两种场景分别定义规则,通过if参数控制生效条件:

artifacts:
  # 普通推送触发的构建生效
  - path: Foo\bin\$(configuration)
    name: Foo_%APPVEYOR_BUILD_VERSION%
    type: zip
    if: not ($env:APPVEYOR_REPO_TAG -eq $true)
  # Tag推送触发的构建生效
  - path: Foo\bin\$(configuration)
    name: Foo_%APPVEYOR_REPO_TAG_NAME%
    type: zip
    if: $env:APPVEYOR_REPO_TAG -eq $true

方案二:预定义统一产物名称变量

在构建前置阶段通过脚本判断场景,设置统一的产物名称变量,后续产物规则直接引用该变量即可,后续修改命名规则时只需要调整一处:

# 构建前置阶段设置变量,Windows构建用PowerShell语法如下
install:
  - ps: |
      if ($env:APPVEYOR_REPO_TAG -eq $true) {
        $env:ARTIFACT_PREFIX = "Foo_$($env:APPVEYOR_REPO_TAG_NAME)"
      } else {
        $env:ARTIFACT_PREFIX = "Foo_$($env:APPVEYOR_BUILD_VERSION)"
      }

artifacts:
  - path: Foo\bin\$(configuration)
    name: $(ARTIFACT_PREFIX)
    type: zip

注意事项

  • 判断逻辑依赖内置变量APPVEYOR_REPO_TAG,该变量为布尔类型,Tag触发构建时自动取值为true
  • 如果使用Linux/macOS构建环境,把install阶段的PowerShell脚本替换为对应bash语法即可
  • 推送的Tag名称不要包含操作系统不允许的文件名非法字符,避免产物生成失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 11:27:03