首页 > 解决方案 > 触发构建时缺少工件

问题描述

为了做好准备,我在 yaml 中创建了两个管道,分别称为 Build-CI 和 Release-CD。Release-CD 对 Build-CI 具有管道资源依赖性,因此当 Build-CI 完成时,会触发 Release-CD。

我遇到的问题是特定于构建工件的。为了使我的 Release-CD 作业更高效,我只下载完成作业所需的构建工件,而不是让所有作业下载所有工件。我使用以下语法执行此操作

- download: triggeredBy
      artifact: 'drop'
      patterns: '**/ArtifactSubFolder/*'

在这种情况下,“triggeredBy”是管道资源的名称。

我的理解是这将从触发发布的构建中下载工件。这在构建和发布背靠背发生时有效。但是,Release-CD 管道包含多个阶段(dev、test、stage、prod)。和情况一样,该版本将进入“测试”并在那里等待一天左右的批准,然后才被提升为“阶段”。

当这种延迟发生并且我们批准发布到下一个环境时,我们会收到错误消息,指出未找到构建工件,并且它引用的构建 ID 不是触发构建的构建 ID,而是构建的构建 ID发生在部署到“测试”和批准到“阶段”之间

我如何确保在将这些发布管道批准到后续阶段时,它们确实是从原始触发分支下载工件?

标签: azure-devopsazure-devops-pipelines

解决方案


推荐阅读