Azure DevOps管道:跳过在 checkout 中解析增量+标记

xjreopfe  于 2022-09-21  发布在  Git
关注(0)|答案(2)|浏览(145)

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

来自LOG的采样线:

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

管道代码段:

stages:  
- stage: Build  
  jobs:  
  - job: Build
    steps:
    - checkout: self
      fetchDepth: 1
      clean: true

你知道有什么设置可以在管道中打开以忽略标签并跳过增量吗?每次流水线执行都需要相同的时间。

sxissh06

sxissh061#

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

若要通过YAML文件退出同步标签,请在 checkout 步骤中添加noTages:true。如果未指定noTages选项,则与使用noTages:FALSE相同。

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

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

另外,请确保您开启了浅层抓取。测试并确认您正在获得更好的时间结果。

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

qhhrdooz

qhhrdooz2#

您不能配置为不下载tags

唯一的方法是设置clean: false以加速checkout,或者禁用checkout并在YAML中实现您的git克隆。

请参见herehere

您可以在此处查看代理GIT结账代码:

https://github.com/microsoft/azure-pipelines-agent/blob/2224fd66cbf202835846523ee789b18a5f1e6355/src/Agent.Worker/Build/GitCommandManager.cs

相关问题