4

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

在此处输入图像描述

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

YAML 管道日志:

在此处输入图像描述

经典编辑器管道日志:

在此处输入图像描述

4

2 回答 2

7

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

在此处输入图像描述

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

jobs:
- job: Job1
  workspace:
    clean: all # what to clean up before the job runs - outputs | resources | all
于 2020-05-12T10:05:14.400 回答
1

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

在此处输入图像描述

我在文档中找到了这个:

当 clean 设置为 true 时,构建管道会撤消$(Build.SourcesDirectory). 更具体地说,在获取源之前执行以下 Git 命令。

git clean -ffdx
git reset --hard HEAD

您是否启用了清洁选项?

于 2020-05-08T11:23:56.453 回答