首页 > 解决方案 > 从另一个管道构建下载工件内容

问题描述

我有两个 azure devops 管道,如下所示:

这将在第二个管道构建的 $(CustomDestinationFolder) 内创建一个名为“AncientArtifact-1.2.0.12345”的文件夹(第一个管道最近的 BuildId=12345)。

我想将上述文件夹重命名为“ancient”之类的名称,并将其移动到第二个管道构建中的另一个目录,以包含在第二个管道工件中。

我尝试使用复制文件任务,但问题是我不知道下载的工件文件夹的名称,因此我只能将其父 $(CustomDestinationFolder) 指定为源文件夹,因此我的目标文件夹看起来像 $(destinationFolder )\AncientArtifact-1.2.0.12345*。使用 flattenFolders 选项将展平所有内容,这不是我想要的。

想到了一些方法:

有没有更好的方法来处理这个?

标签: azureazure-devopsazure-devops-extensions

解决方案


您也许可以通过复制文件任务和通配符沿着一条路线走下去,以获得您想要的东西。

但是,如果您最终想要重命名工件文件夹以包含在第二个管道中,我会在您下载后重命名工件文件夹。

如果它简单地解决了问题并且易于理解,我不会称之为hackish。

- task: DownloadBuildArtifacts@0
  inputs:
    buildType: 'specific'
    project: 'your-project'
    pipeline: 'your-pipeline'
    buildVersionToDownload: 'latest'
    downloadType: 'specific'
    downloadPath: '$(System.ArtifactsDirectory)\customLocation'

- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: Get-ChildItem $(System.ArtifactsDirectory)\customLocation | Rename-Item -NewName 'ancient'

推荐阅读