推送标签时 appveyor 上的不同命名工件?

Different naming artifacts on appveyor when tag pushed?

我在 appveyor.yml 中有这个模式:

  - path: Foo\bin$(configuration)
    name: Foo_%APPVEYOR_BUILD_VERSION%
    type: zip

当我推送一些常规提交时,我得到了工件 Foo_123_master.zip

想要Foo_1.4.8.zip,当push释放标签1.4.8.

Appveyor 有 %APPVEYOR_REPO_TAG_NAME% 环境变量,但是如何在常规构建和标记推送构建中将工件设置为不同的命名?

可以引入另一个环境变量,根据构建类型设置,例如:

init:
- ps: |
    $env:artifact_suffix = $env:APPVEYOR_BUILD_VERSION
    if ($env:APPVEYOR_REPO_TAG -eq 'true') {
      $env:artifact_suffix = $env:APPVEYOR_REPO_TAG_NAME
    }

然后在 artifacts 部分:

  - path: Foo\bin$(configuration)
    name: Foo_%artifact_suffix%
    type: zip