[英]Running a YAML build pipeline manually with artifacts selected from resources in the UI are ignored
我们有一个 YAML 文件( pipelineB
),它执行它必须做的事情,它从特定的其他现有构建管道( pipelineA
)下载最新的构建工件。 这是自动触发的。 现在我们想手动运行这个构建pipelineB
并且能够选择要使用的另一个工件版本。 在 Azure DevOps 构建管道中有一个“运行管道”选项,您可以在其中选择要使用的“资源”。 如果您选择一个资源,您最终会得到一个来自pipelineA
的所有构建的列表,您可以从中进行选择。
如果我们然后从管道运行的pipelineA
和运行pipelineB
1.2.43-10019-master
选择较旧的(例如1.2.43-10019-master
)构建,并且我们查看日志,我们会发现它忽略了我们手动选择的内容并始终下载最新版本。 我可以理解这样做是因为DownloadBuildArtifact@0
步骤告诉使用latestFromBranch
构建版本进行下载。
我的问题:我们如何利用手动选择资源构建工件并在 YAML 管道中进一步使用所选版本? 理想情况下,如果您不进行手动运行/选择,则默认情况下它应该只使用最新版本的工件。
下面是我们 YAML 管道的摘录:
name: pipelineB
resources:
pipelines:
- pipeline: pipelineA
source: pipelineA
branch: master
trigger:
branches:
- master
steps:
- task: DownloadBuildArtifacts@0
name:
displayName: 'Download pipelineA artifact'
inputs:
buildtype: specific
project: ourProjectName
pipeline: pipelineA
branchName: refs/heads/master
buildVersionToDownload: latestFromBranch
downloadType: specific
downloadPath: $(Pipeline.Workspace)
基于@Krzysztof Madej 回答的工作解决方案。 仅对于步骤DownloadBuildArtifacts@0
字段buildVersionToDownload
需要更改为specific
并且需要引入一个新字段buildId
引用pipelineA
资源。
steps:
- task: DownloadBuildArtifacts@0
name:
displayName: 'Download pipelineA artifact'
inputs:
buildtype: specific
project: ourProjectName
pipeline: pipelineA
branchName: refs/heads/master
buildVersionToDownload: 'specific'
downloadType: specific
buildId: '$(resources.pipeline.pipelineA.runID)'
downloadPath: $(Pipeline.Workspace)
请将buildVersionToDownload
更改为specific
,然后使用buildId: '$(resources.pipeline.hadar.runID)'
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'specific'
project: '4fa6b279-3db9-4cb0-aab8-e06c2ad550b2'
pipeline: '72'
branchName: 'refs/heads/master'
buildVersionToDownload: 'specific'
downloadType: 'single'
downloadPath: '$(Pipeline.Workspace)'
artifactName: 'drop'
buildId: '$(resources.pipeline.hadar.runID)'
您可以在此处检查管道资源的可用变量
resources.pipeline.<Alias>.projectName
resources.pipeline.<Alias>.projectID
resources.pipeline.<Alias>.pipelineName
resources.pipeline.<Alias>.pipelineID
resources.pipeline.<Alias>.runName
resources.pipeline.<Alias>.runID
resources.pipeline.<Alias>.runURI
resources.pipeline.<Alias>.sourceBranch
resources.pipeline.<Alias>.sourceCommit
resources.pipeline.<Alias>.sourceProvider
resources.pipeline.<Alias>.requestedFor
resources.pipeline.<Alias>.requestedForID
我又检查了一遍,很简单
- download: pipelineA
作为上面的代码工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.