【问题标题】:How to speed up git pulling triggered using jenkins?如何加快使用詹金斯触发的 git pull?
【发布时间】:2017-10-30 08:26:02
【问题描述】:

这是一个大小超过 2 GB 的 xamarin 移动应用程序。 我的领导能够使用 MSBuild 构建它。 我的任务是使用 Jenkins 和 MSBuild 作为插件来自动化构建。 由于这是一个非常大的应用程序,git pull 已经用了一个多小时,任务进度条显示在 95% 左右。

Question 1) How can I speed up this jenkins/git pulling process?

我在客户端的虚拟机上工作,网速还不错

我在这里分享我的詹金斯控制台

提前致谢

【问题讨论】:

    标签: git jenkins msbuild


    【解决方案1】:
    1. 浅克隆

      您可以为git clone 指定--depth=<n>。关键是减少要获取的数据。这不适用于不断添加新二进制文件的存储库。

    2. 参考克隆

      首先在 jenkins 作业可以访问的目录中创建一个完整克隆作为参考存储库。然后为git clone 添加--reference <path_of_the_reference_repository>。根据您的需要,定期更新参考存储库,可能每周两次左右。重点是重用参考存储库中已经存在的任何数据,只是为了获取本地不存在的数据。

    【讨论】:

    • 1.在变浅时,我怎么知道要设置什么深度(n)?是否可以将深度设为“n”。如果没有,我该如何决定?使用 bash 脚本进行克隆时,速度非常快。但是,与詹金斯一起做的时候要花很多时间。这是因为我的工作配置错误吗? 2.我试过提供参考资料库。但是,我如何确保 jenkins 是从参考存储库访问的。有什么办法可以检查吗?再次感谢您
    • @SRKprakash 这取决于您需要多少级别的日志。如果只需要最新的代码,n=1 就足够了。如果你需要得到差异,那么至少 n=2。您可以尝试不同的深度,然后运行git loggit show 来查看差异。
    • 我如何确保 jenkins 正在从我的参考存储库访问。有什么方法可以检查吗?
    • 我如何确保 jenkins 正在从我的参考存储库访问。有没有办法检查这个?我问这个是因为这些配置似乎没有任何区别
    • @SRKprakash 如果插件不支持此类配置,您可以在构建脚本中尝试。
    【解决方案2】:

    如果您的本地网络速度较快,但 Internet 网络速度较慢,您可以在本地网络上的某个地方保留一份结帐副本,并让您的构建将其复制到您的工作区并运行“git pull”,然后运行“git checkout”分支”。这并不理想,因为您会丢失构建之间的“更改”,但如果这对您不重要,那可能会奏效。另一个想法是不要删除工作区,而只是在“结帐前清理”。理想情况下,你想做@ElpieKay 建议的事情。我只是在抛出一个替代方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      • 1970-01-01
      • 1970-01-01
      • 2014-12-06
      • 2019-11-19
      • 2020-08-21
      • 1970-01-01
      相关资源
      最近更新 更多