[英]Download artifact contents from another pipeline build
我有两个 azure devops 管道,如下所示:
这将在第二个管道构建中的 $(CustomDestinationFolder) 内创建一个名为“AncientArtifact-1.2.0.12345”(第一个管道最近的 BuildId=12345)的文件夹。
我想将上述文件夹重命名为“古”之类的内容,并将其移动到第二个管道构建中的另一个目录以包含在第二个管道工件中。
我曾尝试使用复制文件任务,但问题是我不知道下载的工件文件夹的名称,因此我只能将其父 $(CustomDestinationFolder) 指定为源文件夹,因此我的目标文件夹看起来像 $(destinationFolder) )\\AncientArtifact-1.2.0.12345*。 使用 flattenFolders 选项将使所有内容变平,这不是我想要的。
想到了一些方法:
有没有更好的方法来处理这个问题?
您也许可以通过复制文件任务和通配符沿着一条路线走下去,以获得您想要的东西。
但是,如果您最终想要重命名工件文件夹以包含在第二个管道中,我会在您下载它后重命名工件文件夹。
如果它简单地解决了问题并且易于理解,我不会称之为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'
与 Eric 不同,这里我只是按照你的想法 1保留在工件名称中指定的$(Build.buildId)
。
如果将pipeline2
的system.debug
设置为true
,您将看到任务DownloadBuildArtifacts
本身根据使用的不同构建生成一个环境变量: BuildNumber
只需使用它,设置DownloadBuildArtifacts
任务的reference name
: ref
。
然后,您可以在接下来的步骤中调用此变量以获取buildid
值: $(ref.BuildNumber)
。
同时,您可以通过保留工件名称中包含$(Build.BuildId)
值来使用复制文件任务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.