Jenkins Pipeline+Docker實現流水線自動化構建(上百個專案共用一個指令碼方案)
Jenkins Pipeline是一套外掛,支援將連續輸送Pipeline實施和整合到Jenkins。Pipeline提供了一組可擴充套件的工具,用於通過PipelineDSL為程式碼建立簡單到複雜的傳送Pipeline。
對於單個專案來說,使用這樣的Pipeline來構建能夠滿足絕大部分需求,但是這樣做也有很多缺陷,包括:
多個專案的Pipeline打包指令碼不能公用,導致一個專案寫一份指令碼,維護比較麻煩。
Jenkins提供了一個更優雅的管理Pipeline指令碼的方式,在配置專案Pipeline的時候,選擇Pipeline script from SCM。
這樣,Jenkins在啟動job的時候,首先會去倉庫裡面拉取指令碼,然後再執行這個指令碼。在腳本里面,我們規定的構建方式和流程,就會按部就班地執行。
接下來我們來實踐下。
環境:Docker
容器管理平臺:Rancher
語言:Java
** Jenkins安裝**
略
**Pipeline外掛安裝**
流水線外掛
系統管理--->管理外掛--->可選外掛--->搜尋pipeline--->點選直接安裝
**extended choice parameter外掛安裝**:
引數化構建過程,構建的時候可以多選框來選擇要構建的專案模組
系統管理--->管理外掛--->可選外掛--->搜尋extended choice parameter---->點選直接安裝
新建一個pipeline的job
點選引數構建化
新建分支版本引數
新建專案名稱引數
新建rancher id環境變數
新建rancher應用分類
流水線配置
Repositories Jenkinsfile指令碼所在分支
Branches to build是Jenkinsfile所在分支
指令碼
這邊只要修改每個job的引數上面的某些變數即可,無需更改構建指令碼,不管幾個Job,都可共同一個指令碼。
我這邊只是舉一個簡單的例子,大家實際應用中,需要轉變思路。
------------------------------------------------------------------------------------------