首页 > 解决方案 > 在使用 YAML 配置时,清理 Azure DevOps Pipeline 设置中的所有构建目录都不起作用

问题描述

我使用 Azure DevOps 有一段时间了,在制作 Build Pipeline 时我总是使用经典编辑器 GUI。现在我正在尝试使用 YAML 创建新的管道。一切顺利,构建成功。但是,与使用经典编辑器的管道相比,我注意到结帐任务中的不同行为。在两个管道中,“获取源”选项卡中使用的设置相同(请参见下面的屏幕截图)

在此处输入图像描述

在经典编辑器管道的情况下,签出任务删除并重新创建$(Agent.BuildDirectory).这将导致为每个构建初始化一个新的本地 Git 存储库。但是,对于 YAML 管道,签出任务仅执行git clean -ffdx和删除源目录。如何解决 YAML 管道的这个问题?

YAML 管道日志:

在此处输入图像描述

经典编辑器管道日志:

在此处输入图像描述

标签: gitazure-devopsazure-pipelinesdevopsazure-yaml-pipelines

解决方案


在构建 YAML 的情况下,在 devops UI 中设置清除所有构建目录选项(在下面的屏幕截图中)不起作用。

在此处输入图像描述

但是您可以通过使用 Job 的工作区设置在 YAML 文件本身中指定这一点。这按预期工作。

jobs:
- job: Job1
  workspace:
    clean: all # what to clean up before the job runs - outputs | resources | all

推荐阅读