0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

提升jenkins構建效率的方法

馬哥Linux運維 ? 來源:CSDN ? 2023-07-18 09:40 ? 次閱讀

一、前言

最近使用jenkins部署一個項目的時候,總是構建失敗,卡在了git clone這一步驟,經過一系列的分析,發(fā)現jenkins執(zhí)行git clone時,會先下載(或構建).git文件的。

隨著項目提交的次數增多,特別是如果提交內容里有大文件,會發(fā)現.git文件越來越大

b8e8ecde-24ab-11ee-962d-dac502259ad0.png

.git是一個隱藏文件,該文件夾存儲了 Git 倉庫的所有元數據和對象,包含:對象數據庫(Object Database)、分支和標簽信息、配置信息、日志和歷史記錄、鉤子腳本(Hooks)等。

既然找到了導致jenkins構建過慢或者失敗的病因,那該如何解決呢?

二、解決方式

方式一:壓縮減少.git文件的體積

可以使用Git提供的命令行工具將.git文件壓縮為更小的大小,運行以下命令:

git gc --aggressive --prune=all

這將使用Git的垃圾收集機制來清理和壓縮不再使用的對象,并將不必要的歷史記錄從存儲庫中刪除,這可能會減小.git文件的大小。

也可以使用一些第三方工具清理和優(yōu)化Git存儲庫,例如:BFG Repo-Cleaner。

如果.git文件的大小主要是由于大型文件引起的,可以考慮從存儲庫中刪除這些文件或使用Git的LFS(Large File Storage)擴展來處理大型文件,通過移除或外部存儲大文件,可以減小.git文件的大小。

方式二:淺克?。?a target="_blank">推薦

如果不需要存儲庫的完整歷史記錄,并且只對最新的提交和文件更改感興趣,可以使用Git的淺克?。╯hallow clone)功能來減小.git文件的大小,運行以下命令(--depth表示只需要最后1條記錄):

git clone --depth 1 -b 分支 倉庫地址

這將只克隆最新的提交和文件,而不會復制完整的歷史記錄。

那么對應jenkins是這樣配置的,首先打開項目的Git配置部分,找到“Additional Behaviors”(附加行為)選項,并點擊“Add”(添加)按鈕,選擇“Advanced clone behaviours”:b92b1ba4-24ab-11ee-962d-dac502259ad0.png

然后配置Shallow clone,depth為1即可:

b95d3706-24ab-11ee-962d-dac502259ad0.png

鏈接:https://blog.csdn.net/qq_20042935/article/details/131422066





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7402

    瀏覽量

    163386

原文標題:提升jenkins構建效率(解決git文件過大的問題)

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    通過Jenkins提供的啟動參數禁用殺死子進程的方法

    Jenkins】execute shell啟動的進程在結束的時候被殺死
    發(fā)表于 05-10 16:18

    Jenkins空間不足怎么辦

    Jenkins空間問題
    發(fā)表于 08-14 13:33

    Jenkins用戶界面的相關資料分享

    以查看已運行測試的狀態(tài),查看測試日志以及安排新測試在目標板上運行。您還可以使用此界面向系統(tǒng)添加新的電路板和新的測試。請注意,Jenkins對象是:節(jié)點作業(yè)構建視圖這些與相同對象的Fue...
    發(fā)表于 12-21 06:56

    jenkins是什么?有何應用

    最近打算研究下持續(xù)集成,jenkins是一款功能很強大的解決方案,實踐出真知,邊實踐變了解,實戰(zhàn)了下jenkins的應用,順便提高下工作效率下文及下圖提到的PBX即為我要監(jiān)控的嵌入式設備
    發(fā)表于 12-21 08:21

    Jenkins遠程部署Linux服務器的過程

    1、Jenkins遠程部署Linux服務器  之前在Jenkins上也有一些使用經驗了,但是都是使用團隊配置好的Jenkins,自己只需要管自己的項目以及執(zhí)行構建即可,這一次自己嘗試了
    發(fā)表于 11-18 18:12

    jenkins簡單的使用教程_jenkins安裝與配置

    jenkins是一個開源軟件項目,是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續(xù)集成變成可能。開發(fā)第一步、提交第二步、編譯第三步、測試第四步、發(fā)布第五步
    發(fā)表于 12-20 18:40 ?8516次閱讀
    <b class='flag-5'>jenkins</b>簡單的使用教程_<b class='flag-5'>jenkins</b>安裝與配置

    jenkins有什么用_jenkins如何自動部署

    Jenkins是一個開源的、提供友好操作界面的持續(xù)集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持續(xù)、自動的構建/測試軟件項目、監(jiān)控外部任務的運行(這個比較抽象,暫且寫上,不做解釋)。
    發(fā)表于 12-20 19:06 ?3.7w次閱讀
    <b class='flag-5'>jenkins</b>有什么用_<b class='flag-5'>jenkins</b>如何自動部署

    jenkins自動化部署

    本文詳細介紹Jenkins的簡單使用—jenkins自動化部署。
    的頭像 發(fā)表于 02-06 11:27 ?4633次閱讀
    <b class='flag-5'>jenkins</b>自動化部署

    Jenkins詳細安裝與構建部署使用教程

    本文詳細介紹了Jenkins安裝與構建部署使用教程。Jenkins是一個開源軟件項目,旨在提供一個開放易用的軟件平臺,使軟件的持續(xù)集成變成可能。Jenkins是基于Java開發(fā)的一種持
    發(fā)表于 02-06 13:47 ?1725次閱讀
    <b class='flag-5'>Jenkins</b>詳細安裝與<b class='flag-5'>構建</b>部署使用教程

    Jenkins是什么_Jenkins常用功能_jenkins的使用總結

    本文詳細回答了Jenkins是什么,Jenkins常用功能以及jenkins的使用總結。Jenkins 是一個可擴展的持續(xù)集成引擎。Jenkins
    發(fā)表于 02-06 14:44 ?2.8w次閱讀
    <b class='flag-5'>Jenkins</b>是什么_<b class='flag-5'>Jenkins</b>常用功能_<b class='flag-5'>jenkins</b>的使用總結

    如何提升變壓器效率,有什么有效方法

    是掌握一定的方法就會科學地進行提升效率。對于變壓器提升效率方法有哪些呢?我們在這里給大家進行介
    發(fā)表于 06-29 17:27 ?3726次閱讀

    部署Jenkins服務時如何保障服務的高可用性呢?

    現在的企業(yè)很多都在用Jenkins做持續(xù)集成,各個業(yè)務端都依靠Jenkins,vivo Devops也是使用Jenkins來進行持續(xù)構建,部署Jen
    的頭像 發(fā)表于 02-14 17:02 ?3067次閱讀

    Jenkins部署啟動案例

    電子發(fā)燒友網站提供《Jenkins部署啟動案例.zip》資料免費下載
    發(fā)表于 06-15 14:53 ?0次下載
    <b class='flag-5'>Jenkins</b>部署啟動案例

    持續(xù)集成工具jenkins和相關工作機會介紹

    Jenkins 允許你設置自動化的構建任務,可以通過集成源代碼管理工具(如 Git、SVN 等)從源代碼倉庫中獲取最新的代碼,并構建項目。這可以確保項目的每次提交都會進行構建和測試,以
    的頭像 發(fā)表于 08-15 16:26 ?465次閱讀

    基于Jenkins+GitLab+Maven實現代碼自動打包編譯發(fā)布

    Jenkins是一個獨立開源的持續(xù)集成和持續(xù)交付工具,用于自動化構建、測試和部署軟件項目。
    的頭像 發(fā)表于 11-20 09:57 ?4272次閱讀
    基于<b class='flag-5'>Jenkins</b>+GitLab+Maven實現代碼自動打包編譯發(fā)布