tje*_*net 4 azure-devops azure-pipelines
我们有一个 YAML 文件 ( pipelineB
),它执行它必须执行的操作,它从特定的其他现有构建管道 ( pipelineA
) 下载最新的构建工件。这是自动触发的。现在我们希望pipelineB
手动运行此构建并能够选择要使用的另一个工件版本。在 Azure DevOps 构建管道中,有一个选项显示“运行管道”,您可以在其中选择要使用的“资源”。如果您选择一个资源,您最终会看到一个包含所有构建的列表,pipelineA
您可以从中进行选择。
1.2.43-10019-master
如果我们然后从管道运行中选择较旧的(例如)构建pipelineA
并运行pipelineB
,并且我们查看日志记录,我们会发现它会忽略我们手动选择的内容并始终下载最新版本。我可以理解它是这样做的,因为该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)
Run Code Online (Sandbox Code Playgroud)
基于@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)
Run Code Online (Sandbox Code Playgroud)
请更改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)'
Run Code Online (Sandbox Code Playgroud)
您可以在此处检查管道资源的可用变量
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
Run Code Online (Sandbox Code Playgroud)
我又查了一下,很简单
- download: pipelineA
Run Code Online (Sandbox Code Playgroud)
如上面的代码一样工作。
归档时间: |
|
查看次数: |
2028 次 |
最近记录: |