簡體   English   中英

Jenkins 與 Intellij 共享庫

[英]Jenkins shared library with intellij

我開始實現 Jenkins 共享庫,並嘗試使用 intellij 作為我的 ide 編寫我的 jenkinsfile。

如何從共享庫存儲庫獲取函數到其中包含 jenkins 文件的另一個存儲庫。

只是為了澄清從 jenkins 運行時對我有用的東西,但我需要一種簡單的方法來編寫我的 jenkins 文件,並使用來自 shared-lib 存儲庫的函數。

您可以嘗試在您的 IDE 中使用 Jenkins 提供的IntelliJ IDEA GDSL文件。

http://<JENKINS>/job/<PIPELINE_JOB>/pipeline-syntax/gdsl中的pipline.gdsl http://<JENKINS>/job/<PIPELINE_JOB>/pipeline-syntax/gdslpipline.gdsl文件,並將此文件添加到 IntelliJ Jenkins Pipeline項目的源文件夾中。 (您可能還想將該文件添加到您的 SCM 忽略列表中。)

之前,加入GDSL文件自動完成:

沒有 GDSL 的自動完成 使用 GDSL 自動完成

Jenkins UI 上,您會在“管道語法 > IntelliJ IDEA GDSL”下的管道項目中找到該 GDSL 文件。

詹金斯GDSL

但是,我發現此解決方案有一些注意事項,需要我手動編輯pipeline.gdsl文件,但這可能與我的 Jenkins 安裝不是最新的有關 (?):

  • GDSL 文件中考慮了自定義全局變量(來自/var文件夾),但不考慮在該變量定義的方法
  • 由於ParallelStep類上的錯誤(?), parallel步驟未正確導出

(知識來源: Veaceslav Gaidarji 的博客。)

我在 mkobit 結合 IntelliJ IDEA 的jenkins-pipeline-shared-libraries-gradle-plugin方面有很好的經驗。

這個插件的一些很棒的功能是

  • 用於驗證源代碼的基本 Groovy 編譯
  • 使用 Jenkins 流水線單元進行單元測試
  • 插件和Jenkins核心類在庫中的使用
  • @Grab 對庫的支持(由於問題,測試僅限於 @JenkinsRule 風格的集成測試)
  • @NonCPS 注釋可以在主要源代碼中使用
  • 使用 Jenkins Test Harness 進行集成測試

就個人而言,我在共享庫項目中開發我的管道,並在通過單元測試后將管道集成到目標存儲庫中。

還有一個示例存儲庫用於演示使用此插件。

您可以使用特定的組 ID、工件 ID 和版本將 jenkins 共享庫創建為 maven 項目(或 gradle,沒關系)。 每當您更改共享庫時,您都應該執行“mvn install”(此目標用於將共享庫 jar 工件添加到本地 maven 存儲庫)。 在另一個您將編寫 jenkins 文件的存儲庫中,您還應該創建一個 maven 項目並將您的共享庫添加為 maven 依賴項。 現在您可以在 jenkins 文件中使用共享庫中的代碼。

暫無
暫無

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

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