簡體   English   中英

如何使用AWS CodeBuild改善大型Java工件和Docker鏡像的詹金斯性能?

[英]How can I improve jenkins performance with aws codebuild to build big java artifacts and docker images?

我們的詹金斯(Jenkins)安裝在AWS中,我們沒有設法使用奴隸。 由於平台很大,並且某些工件包含許多其他工件,因此當多個開發人員致力於不同的存儲庫並被迫同時運行多個作業時,我們的詹金斯人就受到了限制。

目的是:-堅持使用jenkins,因為我們的流程是基於jenkins編寫的,並且我們使用了許多插件,例如測試結果摘要和github集成-在codebuild中運行作業並在jenkins中獲得反饋以提高性能

是否有最佳做法?

我們執行了以下步驟來在jenkins外部構建大型工件:-安裝jenkins codebuild插件-創建jenkins管道-將s3中的maven構建存儲在settings.xml中-將訪問權限存儲在系統管理器參數中以在codebuild和maven中使用

  • 使用必要的權限和以下功能創建代碼構建項目:-從s3獲取settings.xml –使用必要的訪問數據運行maven –將測試結果存儲在s3中

  • 創建具有以下功能的jenkinsfile:-獲取commitID並使用它運行codebuild –從s3獲取測試結果的生成文件並將其傳遞給jenkins –從s3刪除生成的文件–將文件傳遞給jenkins以顯示測試結果

通過這種方法,我們設法將運行時間減少到5分鍾。

我們面臨的下一個挑戰是在Java微服務之上構建應用程序並對其進行分類,創建docker映像並將其推送到不同的環境。 該作業在詹金斯(Jenkins)運行了大約25分鍾。

我們執行了以下步驟在jenkins外部構建docker映像:-安裝jenkins codebuild插件-創建jenkins管道-將s3中的maven構建存儲在settings.xml中-將訪問權限存儲在系統管理器參數中以在codebuild和maven中使用

  • 使用必要的權限和以下功能創建代碼構建項目:-從s3獲取settings.xml-在所有環境中登錄到ecr-構建angular應用程序-構建java應用程序-復制docker build所需的文件-build泊塢窗圖片-推送所有內容

  • 創建具有以下功能的jenkinsfile:-獲取兩個存儲庫的分支名稱以從中構建docker映像–獲取分支最新的commitID-使用兩個commitID調用代碼構建項目(注意,主存儲庫將需要buildspec)

通過這種方法,我們設法將運行時間減少到5分鍾。

示例代碼在: https : //github.com/felipeloha/samples/tree/master/jenkins-codebuild

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM