Jenkins 插件推薦

    可以在 Jenkins 的建置步驟中使用 Ansible 的插件。除了使用 Ansible 來部署 Jenkins 環境外,我們同樣也可以透過這個插件讓 Jenkins 操作 Ansible 對目標伺服器進行自動化部署。

    Blue Ocean

    筆者在 中介紹過的插件。Blue Ocean 除了重新設計了 Jenkins 的操作介面外,在 Pipeline 專案開發流程的優化上也有相當不錯的表現。若有使用 Pipeline 專案需求的團隊,Blue Ocean 絕對是一個值得一試的選項。

    Conditional BuildStep

    這個插件可以讓我們替專案的建置步驟加上觸發建置條件,例如檢查工作目錄下是否有某檔案存在,當存在時進行 A 建置步驟,若否,則進行 B 建置步驟。在使用上相當直覺也相當方便的一個插件。

    隨著容器技術漸漸成為業界主流,使用 Jenkins 來操作容器也成為一個必要的需求。這個插件提供了 Docker 使用者相當完善的使用介面,無論是 Docker 映像檔的建立,或是 Docker 容器的運行管理都可以透過這個插件在建置流程中來進行操作。

    Email Extension

    這個插件可以讓我們輕鬆控制及管理建置流程中的各個環境變數,並橫跨不同的建置階段。舉例來說,我們可以將從 SCM 提取的 commit number 存入一個環境變數中,待建置結束後,再將這個 commit number 作為建置後輸出報告的變數使用。除此之外,在每一次建置作業內,我們都可以查看該次建置作業使用的環境變數分別有哪些。筆者個人認為這算是 Jenkins 必裝的插件之一。

    GitHub Pull Request Builder

    當建置作業完成時,若有需有,我們可以直接透過這個插件在 GitHub repository 上建立新的 pull request。同時,若建置分支沒有產生衝突,我們也可以使用這個插件來實現自動合併。

    這個插件可以讓我們隨時檢視 Jenkins 在伺服器上的使用狀況。我們可以根據不同時間間隔等參數來快速查看 Jenkins 的使用狀況,並以此客製化視覺圖表。對於管理 Jenkins 的管理人員來說是相當好用的一個插件。

    HipChat

    如同前面介紹過的 這個插件一樣,HipChat 這個插件同樣提供了傳送建置結果至 HipChat 頻道內的功能,對於主要使用 HipChat 作為溝通軟體的團隊來說這個插件絕對是一個不可多得的好物。

    Job Configuration History

    這個插件可以幫助我們追蹤專案組態的修改歷史,同時也提供類似 的功能來讓我們查看每個版本間的差異。以一個 Jenkins 專案維護者的角度而言這個插件實在是相當實用。

    Log Parser

    這個插件可以讓我們透過撰寫 parsing rule file 來自動透過建置作業的輸出結果來更改專案建置結果的狀態。比方來說若建置結果出現 的字樣,即將該次建置標示為建置失敗。由於有些開發工具即便在建置專案失敗時也不會傳送恰當的 exit code,導致有時候 Jenkins 無法透過 error code 來判斷該次建置是否成功。因此,我們可以簡單透過這個插件來檢查建置的輸出結果,以確認該次專案的建置狀態是否正確。

    這個插件允許我們建立 MultiJob 類型的專案。有點類似於 Pipeline 專案,我們也可以在這種類型的專案下替建置作業設置建置階段,每個建置階段下可以有多個建置作業,而在每一個建置階段完成後才會進入下一個建置階段。不同的是,在這種類型專案下的建置作業是彼此獨立的,在建置作業運行時是採取平行建置的狀態,彼此之間並不會互相依賴。

    Publish Over SSH

    在章節內有介紹到的插件。這個插件可以允許我們將建置後產物透過 SSH 傳送至目標伺服器上,對於持續部署或持續交付的實踐上是相當實用的一個插件。

    Role-based Authorization Strategy

    筆者同樣在建置後動作提過的插件。這個插件提供了 Jenkins 傳送建置後通知至指定 Slack 頻道內的功能。