gpt4 book ai didi

azure-devops - 根据标签从分支下载最新的管道工件

转载 作者:行者123 更新时间:2023-12-05 01:36:08 25 4
gpt4 key购买 nike

我正在尝试从当前构建管道和分支下载给定标签的最新可用工件,但出现以下错误。

##[error]No builds currently exist in the pipeline definition supplied.

这是一个用于自动化测试的 3 阶段管道,包括构建、部署和运行测试阶段。在运行测试阶段,我试图在构建阶段下载最近可用的工件,它可能是这次运行,也可能是更早的运行。

如果我将标签选项排除在外,它将尝试从上次可用运行中获取它,但当时可能尚未创建此工件,因此我使用标签来尝试过滤它。

    - task: DownloadPipelineArtifact@2
displayName: 'Download Latest DLLs'
inputs:
source: 'specific'
project: $(System.TeamProjectId)
pipeline: $(System.DefinitionId)
runVersion: 'latestFromBranch'
runBranch: $(Build.SourceBranch)
tags: 'myBuildTag'
allowPartiallySucceededBuilds: true
artifact: myArtifactName
patterns: '**/IntegrationTests/**/*'
path: '$(Agent.TempDirectory)\myArtifactName'
continueOnError: true

任何帮助将不胜感激

最佳答案

Downloading latest Pipeline Artifact from branch based on Tag

我可以自己重现这个问题。

我认为这是带有标签的多个阶段中的 DownloadPipelineArtifact 任务的问题。

经过多方调查,我发现如果我们在多阶段使用DownloadPipelineArtifact任务:

- task: DownloadPipelineArtifact@2
displayName: 'Download Latest DLLs'
inputs:
source: 'specific'
project: $(System.TeamProjectId)
pipeline: $(System.DefinitionId)
runVersion: 'latestFromBranch'
runBranch: $(Build.SourceBranch)

它将尝试下载指定分支上的最新版本。由于我们使用多阶段,构建阶段在当前管道中成功,此任务 DownloadPipelineArtifact 将从之前的 build 阶段下载工件。不过此时还没有添加tag,需要在pipeline完成后添加:

enter image description here

在这种情况下,我们将收到错误信息No builds currently exist in the pipeline definition supplied.

因为构建阶段生成工件的当前管道没有用标签标记,所以它的标签是空的。

这个问题的关键是多阶段yaml在同一个管道中进行构建和测试。它不同于经典的流水线。管道完成后,我们不使用任务 DownloadPipelineArtifact

我在 azure devops 任务上提交了这个问题:https://github.com/microsoft/azure-pipelines-tasks/issues/13101 .您可以查看此票以获取反馈。

希望这对您有所帮助。

关于azure-devops - 根据标签从分支下载最新的管道工件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62294343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com