Azure DevOps 中发布管道工件的文件模式

nor*_*ial 6 continuous-integration yaml azure azure-devops azure-pipelines

最近刚刚构建了一个Azure Pipeline,其中在一个阶段,工件暂存目录中有不同的 zip 文件。我想要实现的是将带有任务的暂存文件夹中的所有zip 文件发布到放置文件夹。PublishPipelineArtifact

我在工件暂存目录中有 2 个存档的 zip 文件:

  1. $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
  2. $(Build.ArtifactStagingDirectory)/cli_scripts_$(Build.BuildId).zip

在我的azure-pipelines.yml文件中,请找到发布任务:

- task: PublishPipelineArtifact@0
  displayName: 'Publish pipeline artifacts'
  inputs:
    targetPath: $(Build.ArtifactStagingDirectory)/**
Run Code Online (Sandbox Code Playgroud)

这给出了以下错误:

[错误] 路径不存在:d:\a\1\a**

我也已经尝试过以下操作,但都没有工作:

$(Build.ArtifactStagingDirectory)/**
$(Build.ArtifactStagingDirectory)/**/*.zip
$(Build.ArtifactStagingDirectory)/*.zip
Run Code Online (Sandbox Code Playgroud)

题:

targetPath从该文件夹移动所有 zip 文件的模式是什么?

任何帮助表示赞赏!

nor*_*ial 6

最终解决问题的方法是archiveFilePatterns在任务中包含一个模式,而不是targetPath像我最初尝试的那样与 结合。

效果很好的解决方案如下:

- task: PublishPipelineArtifact@0
  displayName: 'Publish pipeline artifacts'
  inputs:
    targetPath: $(Build.ArtifactStagingDirectory)/
    archiveFilePatterns: '**/*.zip'
Run Code Online (Sandbox Code Playgroud)

官方文档并没有真正说明这一点,但它使用模式属性给出了这个想法:发布和下载工件

在此输入图像描述

我希望这对将来的人有帮助。