Azure DevOps Pipelines:在 Checkout 中跳过解析增量 + 标签

Jef*_*Fol 5 git azure-devops azure-pipelines

在 Azure DevOps 中,任何管道都需要大约一分钟的时间来签出代码。我已将获取深度配置为 1 以加快速度,但这对时间没有任何影响。它花费大约 10-15 秒接收对象,但在完成下载代码后,它会经历一个解析增量和列出标签[新标签]的过程,这是我们将历史记录从 TFS 迁移到 git 时出现的。

日志中的示例行:

Receiving objects: 100% (139543/139543), 391.48 MiB | 19.37 MiB/s, done.
Resolving deltas:   0% (0/91447)
[new tag]       TFS_C10006 -> TFS_C10006
Run Code Online (Sandbox Code Playgroud)

管道片段:

stages:  
- stage: Build  
  jobs:  
  - job: Build
    steps:
    - checkout: self
      fetchDepth: 1
      clean: true
Run Code Online (Sandbox Code Playgroud)

您是否知道可以在管道上打开任何设置来忽略标签并跳过增量?每次 Pipeline 执行花费相同的时间。

小智 8

Azure Devops 中有一个新选项,可以在获取 Git 存储库时不同步标签。

要选择退出通过 YAML 文件同步标签,请将fetchTags: false添加到结帐步骤。当未指定 fetchTags 选项时,与使用 fetchTags: true 相同。

如果要更改现有 YAML 管道的行为,在 UI 中设置此选项可能比更新 YAML 文件更方便。要导航到 UI,请打开管道的 YAML 编辑器,选择“触发器”,然后选择“处理”,然后选择“结帐”步骤。

如果您在 YAML 文件和 UI 中都指定了此设置,则 UI 中指定的值优先。

另外,请确保启用了浅层提取(在 Azure DevOps 中默认启用)。例如:获取深度:1

测试并确认您获得了更好的结果。

参考: https://learn.microsoft.com/en-us/azure/devops/release-notes/2022/sprint-209-update ?tabs=yaml#do-not-sync-tags-when-fetching-a- git 存储库