1. 程式人生 > >Jenkins Pipeline+Docker實現流水線自動化構建(上百個專案共用一個指令碼方案)

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,都可共同一個指令碼。
我這邊只是舉一個簡單的例子,大家實際應用中,需要轉變思路。
------------------------------------------------------------------------------------------

企業級Docker+Jenkins+Gitlab自動化構建實踐