Azure DevOps多阶段工作区在每个阶段后都需要清理

问题描述 投票:0回答:1

我们使用带有多阶段模板的Yaml文件在Azure DevOps中运行我们的构建。我观察到的是,在每个阶段之后,管道工作空间都将被删除,而依赖于工作空间中存在的文件的下一个阶段将失败。

azure-devops
1个回答
0
投票

每个阶段后都要清理多阶段工作台

正如丹尼尔所说,是的,这是设计使然。

对于我们设计的用于天蓝色devops管道,workspace存在一个workspace。也就是说,每个代理作业都有单独的工作空间

运行代理程序池作业时,它将在代理程序上创建一个工作区。工作区是一个目录,在其中下载源代码并运行步骤,并产生输出。

[如果您注意不同的代理程序作业使用的托管代理程序,则会在一个代理程序作业完成后发现,下一个将使用另一个新的代理程序。这是我上述话中最明显的体现。

如果您使用的是私有代理,这时,可以保留先前代理作业的工作区缓存(类似文件,二进制文件和ect),直到您清理它们为止。但是,您不能通过某些预定义变量来调用它们,例如agent job


在您的情况下,您说下一阶段与上一阶段具有文件依赖性。

为了避免此默认限制引起的问题,可以使用Build.SourcesDirectoryPublish artifact。这种方法可以帮助您在阶段之间传递文件。 download artifact

© www.soinside.com 2019 - 2024. All rights reserved.