推薦10款最佳Jenkins插件

推薦10款最佳Jenkins插件

作者 | 金靈傑

儘管目前在 CI/CD 領域有着衆多的平臺,Jenkins 一直是最著名的持續集成平臺之一。雖然它經歷了和 Oracle 的爭鬥,最終從之前的 Hudson 單獨分離出來,但是憑藉社區和大公司的支持,目前 Jenkins 有超過 1500 個插件,用於支撐整個持續集成流程。

不過由於插件數量衆多,要選擇一些合適的 Jenkins 插件會比較困難,本文介紹了一些比較有用的 Jenkins 插件,能夠提升開發者效率。

Job DSL Plugin

對於很多開發者來說,不同的倉庫和項目分支都需要去 Jenkins 上重新創建任務。這是一個重複且單調的工作,對於開發者來說非常不友好。

Jenkins Job DSL Plugin 可以讓開發者通過 Groovy 腳本來定義和配置任務,隨後插件會通過執行這些腳本來維護 Jenkins 任務。這樣開發團隊可以定製自己的模板文件,通過領域特定語言(Domain Specific Language,DSL)直接定義和創建任務。

https://github.com/jenkinsci/job-dsl-plugin

Job Generator Plugin

和 Job DSL Plugin 類似,Job Generator Plugin 也是用於快速創建任務。對於大團隊來說,整個持續集成流程應該類似,不同的項目的區別主要就是代碼分支等。該插件可以讓團隊的配置管理員爲整個團隊定義一個參數化的模板,項目開發人員可以通過這個模板快速的在 Jenkins 上創建出任務。

該插件和 Job DSL 插件的最大區別是使用者無需瞭解 Groovy。

https://wiki.jenkins.io/display/JENKINS/Job+Generator+Plugin

Performance Plugin

該插件可以讀取和解析測試框架輸出的報告,並且在 Jenkins 上繪製性能和穩定性相關的圖表。Performance Plugin 支持的測試框架有 JUnit、JMeter, Twitter 的 Lago 和 Taurus。下圖是該插件輸出的示例圖:

推薦10款最佳Jenkins插件

https://plugins.jenkins.io/performance

Gitlab Merge Request Builder Plugin

Gitlab Merge Request Builder Plugin 可以方便的自動發起代碼審查,它在創建 pull request 的時候,會自動帶上關聯任務的運行結果,以方便代碼審查着確認改動的正確性。

同時,這款插件還支持自動合併,既在代碼審查通過後自動合併該 pull request 內容。

https://github.com/timols/jenkins-gitlab-merge-request-builder-plugin

JIRA Plugin

JIRA Plugin 可以讓 Jenkins 任務和 JIRA 集成起來,這樣項目管理者可以通過 JIRA 瞭解項目進度,開發者也可以通過該插件直接更改 JIRA 上的 issue 狀態。

https://plugins.jenkins.io/jira

Kubernetes Plugin

和最近大熱的容器編排框架 Kubernetes 集成當然不能落下了。另外,Jenkins 對執行機的管理一直比較弱,無法做到快速的擴容和縮容。Kubernetes Plugin 通過引入 Kubernetes 的容器編排能力,讓 Jenkins 執行機運行在 Kubernetes 環境中。

https://github.com/jenkinsci/kubernetes-plugin

Build Pipeline plugin

對一個系統的持續集成會包含很多個方面,如果將它們都雜糅在一個 Jenkins 任務中,會提高排查成本,也不利於整個持續集成的運作。Build Pipeline plugin 可以讓項目管理員針對系統持續集成步驟設置一系列關聯的任務,任務之間可以設置不同的觸發條件,以確認何時需要人工介入。該插件可以讓整個持續集成流程變得非常直觀:

推薦10款最佳Jenkins插件

https://github.com/jenkinsci/build-pipeline-plugin

SCM Sync Configuration Plugin

對於項目管理人員來說,項目配置的丟失和代碼丟失一樣是非常危險的。對於代碼我們有代碼倉庫進行保存,對於配置也需要能夠備份和版本管理。SCM Sync Configuration Plugin 可以自動將 Jenkins 任務配置同步到版本管理系統中。另外,該插件還可以跟蹤配置的變更情況,讓項目管理人員能夠清晰的瞭解任務的修改情況。

https://plugins.jenkins.io/scm-sync-configuration

Jenkins Maven plugin

相比於 Jenkins 內置的 Maven 支持,Jenkins Maven plugin 對 Maven 工程提供了更豐富的功能。包括:自動配置報告插件(如 JUnit、Findbugs 等),增量構建,並行構建等。

https://plugins.jenkins.io/maven-plugin

Jenkins Subversion plugin

目前仍然有很多項目在使用 Subversion 作爲版本控制軟件,Jenkins Subversion plugin 讓 Jenkins 任務可以支持託管在 Subversion 上的工程。它的功能包括監視 Subversion 倉庫變更來觸發新的構建和自動更新執行機工作目錄,以確保構建的及時性和正確性。

https://plugins.jenkins.io/subversion