JenkinsFile(三)share-lib共享庫

一  基本概念

學習目的:學習Jenkins共享庫的配置,編寫更加靈活強大的流水線!

理解上:類似編程語言中的代碼複用,不同階段可能有共用的地方!

Jenkins中:使用'Groovy語法',共享庫中存儲的'每個文件都是一個Groovy的類',每個文件(類)中包含'一個或多個方法',每個方法包含groovy語句塊
'題外話':對於具有編程能力的同學應該清楚一些;

理解:在'編程語言Python中',我們可以將Python代碼寫到一個文件中,當代碼數量增加,我們可以將代碼打包成模塊然後再以import的方式使用此模塊中的方法。

二  share-lib的結構和內容

(1)共享庫的結構如下所示

說明:這個倉庫中包含了很多類,後續-->kubernetes中的API方法封裝在了kubernetes.groovy文件中,便於後面引用。

(3)解釋說明

src目錄主要存放我們要'編寫的groovy類',執行流水線時,此目錄將添加到class_path中

vars目錄主要存放'腳本文件',這些腳本文件在流水線中作爲'變量公開'

resources目錄允許從'外部庫中'使用步驟來'加載相關聯的非Groovy的資源文件'

三    實驗

說明:本次實驗以github爲例後續以gitlab爲例,聲明式

(1)創建項目

(2)遞歸的創建層級目錄-->src

(3)vars

(4)jenkins上配置做引入

說明:全局配置--->ctrl+f(Google瀏覽器)--->lib進行定位

'額外說明':不要把gitlab和github在jenkins中弄'混淆了'

(5)在jenkins中的jenkinsfile上引入共享庫

備註:三個缺1不可-->(1)'幻數';(2)'@_加載';(3)'創建對象'使用share-lib中的方法

過程:先遠程下載jenkinslib庫,然後檢查,最後在jenkinsfile中引用

(6)測試共享庫的方法是否能調用

說明:tools相當於整個文件(實例對象),然後調用裏面的方法(傳參)!

後續:測試進行上圖

進一步需求:對jenkinsfile也做版本控制

(1)在github上增加一個jenkinsfile

目的:jenkinsfile也放在github上目的是做版本控制的,省的過了一段時間改了什麼都忘記了

(2)更改pipeline的方式

備註:之前是在本地書寫pipeline,現在是通過遠程拉取pipeline(jenkinsfile)文件來執行

之前

現在

'好處':做開發的時候基於不同分支的jenkinsfile進行構建!

(3)使用vars

備註:似乎'vars目錄下'類只有一個方法的時候是'直接調用'的

需求:printMes目的是做一個顏色的輸出!

核心:'排查問題'的時候'打印顏色'

(1)下載插件

備註:'不需要重啓'

(2)將顏色封裝到PrintMes裏面,代碼生成器的使用

(3)相關demo下載

(4)tools.groovy的變更

package org.devops

//格式化輸出-->信息和顏色傳參
def PrintMes(value,color){
    //定義字典
    colors = ['red'   : "\033[40;31m >>>>>>>>>>>${value}<<<<<<<<<<< \033[0m",
              'blue'  : "\033[47;34m ${value} \033[0m",
              'green' : "[1;32m>>>>>>>>>>${value}>>>>>>>>>>[m",
              'green1' : "\033[40;32m >>>>>>>>>>>${value}<<<<<<<<<<< \033[0m" ]
    //調用
    ansiColor('xterm') {
        println(colors[color])
    }
}

備註:資料

(5)類似這種在不同的階段標註不同的顏色

核心:把相當的代碼'集成到share lib中',然後在'Jenkinsfile'中引用!

說明:聲明式是'結構化'的,往裏面填充東西即可!

(6)結果

插件安裝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章