使用 YAML 配置时,Azure DevOps 管道设置中的“清理所有构建目录”不起作用

Clean All build directories in Azure DevOps Pipeline settings is not working while using YAML configuration

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

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

YAML 管道日志:

经典编辑器流水线日志:

这真的很奇怪,因为我有这个(在 YAML 构建中)

我在 documentation 中找到了这个:

When clean is set to true the build pipeline performs an undo of any changes in $(Build.SourcesDirectory). More specifically, the following Git commands are executed prior to fetching the source.

git clean -ffdx
git reset --hard HEAD

您是否启用了清理选项?

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

但是您可以使用作业的工作区设置在 YAML 文件本身中指定它。这按预期工作。

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