Jenkins 共享庫:仔細觀察 [2022]

已發表: 2021-01-02

我們生活在一個微服務時代,在這個時代,當代應用程序被分解成可單獨部署的組件 我們可以說,Jenkins 已經在用於部署微服務的領先的原始 CI/CD 工具中佔據了一席之地。 與單體應用程序相比,部署單個微服務的管道有很多。

您可以使用軟管作為代碼來對 CI/CD 的整個過程進行編碼。 像在應用程序開發中一樣對待它。 您可以在使用它來部署您的應用程序之前發布您的管道代碼並運行所有測試級別。

目錄

什麼是 Jenkins 共享庫?

當我們說 CI/CD 作為一個符號時,我們需要模塊化和重用。 您必須遵循 DRY 原則。 這就是 Jenkins 的共享庫證明有用的地方。

Jenkins共享庫是為版本控制系統包含一個標準管道代碼想法,只需引用它就可以在任意數量的管道上使用。 多個團隊可以為他們的管道使用相同的目錄。

您可以將其與流行的編程目錄進行比較。 編程創建了一個單獨的指南,任何人都可以在導入代碼時使用。

例如,如果您有十個來自 Java 的微服務管道,則對所有十個管道重複舊的創建過程。 此外,管道代碼隨著新服務的添加而被複製和粘貼。 如果要在舊的施工階段更改某些參數,則需要在所有管道中手動調整它們。

在同一場景中,您將為舊建築創建一個共享庫。 對於所有管道,您所要做的就是參考舊的建築代碼庫。 如果將來有任何舊更改,您只需要更新共享庫圖標即可。

閱讀:有趣的 Jenkins 項目想法和主題

開始使用共享庫

共享目錄是很酷的文件(DSL + Groovy)的集合。 所有很酷的文件都必須在 git 存儲庫中。 本示例使用 Github 作為 git 存儲庫。 https://github.com/devopscube/jenkins-shared-library。 您可以復制此存儲庫以獲取共享庫基礎結構。

共享庫數據庫包含以下卷結構:

詹金斯聯合圖書館

| ____ 變量

| ____ 來源

| ____ 資源

變量

它包含您可以從管道調用的所有 WCL 代碼。 它包含所有帶有 .groovy 擴展名的目錄文件。 .txt 文件也支持記錄共享的庫代碼。 例如,如果你有一個名為maven-build 的文件。 Groovy,那麼您將獲得一個名為 maven-groovy.txt 的幫助文件。 您可以編寫幫助文檔來標記此文件中共享目錄的屬性。 可以從 <your-jenkins-url> / Pipeline Syntax / Global 頁面查看幫助文件。

它是一個標準的 Java 源目錄。 編譯完所有文本後,它將被添加到類路徑中。 在這裡您可以添加一個非常酷的代碼來擴展共享庫代碼。 您還可以使用 Import Manifest 導入現有的 Jenkins 類別和擴展。

在某些情況下,很酷的 DSL 硬件不夠靈活,無法執行某些功能。 在這種情況下,您可以在 src 中編寫自定義凹槽函數並在共享庫代碼中讀取它們。

資源

您可以在此文件夾中管理軟管所需的所有不必要文件。 例如,您可能需要一個通用 JSON 模板來在構建期間進行 API 調用。 您可以將此 JSON 模板保存在資源文件夾中,並通過 LibraryResource 函數在共享庫中調用它。

必讀:詹金斯在印度的薪水

共享全局庫

根據您的使用情況,您可以在多個地方設置共享目錄。 Jenkins 管理 » 系統配置 » 全局管道庫。 您可以根據需要配置任意數量的目錄。

這些庫是通用的,因此您系統中的每個管道都可以使用這些庫中實現的功能。

這些庫被認為是“可靠的”。 您可以在 Java、Groovy、Jenkins 的內部 API、Jenkins 擴展或第三方目錄中執行任何方法。 它允許您精確識別將不安全 API 折疊到可以從任何管道安全使用的高級信封的庫。

請注意,任何可以向此 SCM 數據庫支付佣金的人都可以無限制地訪問 Jenkins。 您需要 Total / RunScripts 權限才能創建這些目錄(此權限通常授予 Jenkins 管理員)。

報名參加世界頂尖大學的軟件工程課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

文件夾級共享庫

創建的所有文件夾都可以鏈接到共享目錄。 此機制允許您為卷或子文件夾中的所有管道設置特定的目錄範圍。

基於文件夾的目錄不被視為“受信任的”。 它在凹槽沙箱中運行,就像普通管道一樣。

自動共享庫

其他插件可能會添加一種在旅途中識別庫的方法。 例如,“GitHub 組織文件夾”是 GitHub 分支源中提供的源插件。 它提供了一個組件,允許腳本使用不受信任的庫,例如 github.com/orgname/reponame 減去任何添加的配置。 在這種情況下,將使用匿名設置從主分支加載指定的 GitHub 存儲庫。

檢查庫中的更改

如果您發現構建中包含不受信任的目錄的錯誤,請單擊重播鏈接並編輯一個或多個源文件以查看生成的版本是否按預期工作。 當您對結果感到滿意時,單擊“發布狀態”頁面上的差異鏈接並將差異應用於您的庫和提交池。

(即使庫請求的版本是分支而不是像書籤這樣的靜態版本,重新激活的版本將使用與原始版本相同的版本,您無法拉回庫資源。)

目前,它不為您提供受信任的庫 Replay。 當前不支持在重播期間更改資源文件。

另請閱讀:詹金斯面試問答

結論

以下是一些需要記住的重要事項:

  • 您必須使用 Groovy 來編寫步驟或自定義函數。
  • 需要編寫可以從管道調用的管道步驟。
  • 您需要在存儲庫的 vars 目錄中創建一個文件,該文件將包含您的自定義步驟的名稱。
  • def 調用方法應由您的步驟的參數實現。
  • 如果需要編寫通用的 Groovy 代碼,可以將其添加到 src。
  • 您還可以通過使用配置系統屏幕在 Jenkins 中集成共享庫。

如果您有興趣了解有關全棧開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發執行 PG 計劃,該計劃專為工作專業人士設計,提供 500 多個小時的嚴格培訓、9 個以上的項目和作業, IIIT-B 校友身份,實用的實踐頂點項目和頂級公司的工作協助。

軟件開發課程 | 掌握 Java、C、Python 等‎

立即申請軟件工程碩士