我们可以在一个 azure-pipeline yaml 文件中为一个 repo 设置两个 Build.ArtifactStagingDirectory 位置来发布两个不同的 debian 安装程序吗

Can we have two Build.ArtifactStagingDirectory location for one repo in one azure-pipeline yaml file to publish two different debian installer

我想在具有相同 feed 的 azure-pipeline 的相同 repo 中创建两个 debian 安装程序(packageName1 & packageName2)。下面是我的 azure-pipeline.yaml file

的任务
          - task: PublishBuildArtifacts@1
            displayName: 'Publish artifacts'
            inputs:
              pathtoPublish: '$(Build.ArtifactStagingDirectory)'
              artifactName: 'Installer package and anti-virus scan results'
        
          - task: UniversalPackages@0
            displayName: Publish univeral package-1
            inputs:
              command: publish
              publishDirectory: '$(Build.ArtifactStagingDirectory)'
              vstsFeedPublish: '$(packageFeed)'
              vstsFeedPackagePublish: '$(packageName1)'
              packagePublishDescription: ''
              versionOption: custom
              versionPublish: $(packageVersion1)
            condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))

          - task: UniversalPackages@0
            displayName: Publish univeral package-2
            inputs:
              command: publish
              publishDirectory: '$(Build.ArtifactStagingDirectory)'
              vstsFeedPublish: '$(packageFeed)'
              vstsFeedPackagePublish: '$(packageName2)'
              packagePublishDescription: ''
              versionOption: custom
              versionPublish: $(packageVersion2)
            condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))

但是当我通过 az 命令为其中一个软件包安装程序下载工件时:

az artifacts universal download \
  --organization "https://myplatform.visualstudio.com/" \
  --feed "my-feed" \
  --name $packageName1 \
  --version $packageVersion1 \
  --path .

packageName2 的包和文件也正在下载。我觉得那是因为我使用相同的 Build.ArtifactStagingDirectory 位置来 store/publish 两个包的工件。我可以为两个安装程序包使用不同的位置吗?

您可以在 Build.ArtifactStagingDirectory 下为每个项目创建一个子文件夹并单独发布每个工件。

没有'multiple artifact directories',但您可以在目录下创建任意数量的文件夹,然后将子文件夹传递到构建和发布任务中。