<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          使用 Jenkins 共享庫(kù)對(duì)流水線進(jìn)行擴(kuò)展

          共 1082字,需瀏覽 3分鐘

           ·

          2021-10-03 01:32

          共享庫(kù)這并不是一個(gè)全新的概念,其實(shí)具有編程能力的同學(xué)應(yīng)該清楚一些。例如在編程語(yǔ)言Python中,我們可以將Python代碼寫到一個(gè)文件中,當(dāng)代碼數(shù)量增加,我們可以將代碼打包成模塊然后再以import的方式使用此模塊中的方法。
          在Jenkins中使用Groovy語(yǔ)法,共享庫(kù)中存儲(chǔ)的每個(gè)文件都是一個(gè)groovy的類,每個(gè)文件(類)中包含一個(gè)或多個(gè)方法。每個(gè)方法包含groovy語(yǔ)句塊。

          1.?共享庫(kù)內(nèi)容
          這是一個(gè)demo演示的共享庫(kù),大家可以看到倉(cāng)庫(kù)的結(jié)構(gòu)與內(nèi)容。這個(gè)倉(cāng)庫(kù)中包含了很多類,例如:我將kubernetes中的API方法封裝在了kubernetes.groovy文件中,便于后面引用。在此你只需要知道共享庫(kù)的結(jié)構(gòu) ,具體該如何創(chuàng)建共享庫(kù)后面會(huì)講述??
          ── docs│   └── README.mdREADME.md├── src│   └── org│       └── devops│           └── tools.groovy└── vars
          src目錄主要存放我們要編寫的groovy類,執(zhí)行流水線時(shí),此目錄將添加到class_path中。vars目錄主要存放腳本文件,這些腳本文件在流水線中作為變量公開。resources目錄允許從外部庫(kù)中使用步驟來(lái)加載相關(guān)聯(lián)的非Groovy文件。

          2.?創(chuàng)建共享庫(kù)

          新建文件src/org/devops/tools.groovy, 在此我將這個(gè)文件定義為擴(kuò)展工具類,主要放一些擴(kuò)展方法。

          例如:在構(gòu)建日志中查看流水線詳細(xì)日志會(huì)很亂,我們可以在日志中將重點(diǎn)步驟通過(guò)不同的顏色高亮顯示,便于排錯(cuò)。我們開始寫這樣的一個(gè)方法PrintMes(),包含兩個(gè)參數(shù),輸出內(nèi)容value和內(nèi)容的顏色color

          注意:我們需要安裝 插件AnsiColor,這樣才能使用ansiColor()方法,可以在片段生成器查看更多的用法。

          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]) }}

          3. 使用共享庫(kù)

          我們導(dǎo)航到 系統(tǒng)配置 ->?Global Pipeline Libraries

          首先,我們?yōu)楣蚕韼?kù)設(shè)置一個(gè)名稱jenkinslib,注意這個(gè)名稱后續(xù)在Jenkinsfile中引用。再設(shè)置一個(gè)默認(rèn)的版本,這里的版本是分支的名稱。我默認(rèn)配置的是master版本。

          接下來(lái)我們配置共享庫(kù)的倉(cāng)庫(kù)地址,我的倉(cāng)庫(kù)在github中,所以這里我填寫的是github的方式。(如果你用的是gitlab可以使用gitlab方式或者git方式)。如果倉(cāng)庫(kù)是私有的方式,需要在jenkins的憑據(jù)中添加一個(gè)賬號(hào)用于下載共享庫(kù)。

          好,到此共享庫(kù)在Jenkins的配置就完成了,接下來(lái)測(cè)試在Jenkinsfile中引用。

          在Jenkinsfile中使用@Library('jenkinslib') _來(lái)加載共享庫(kù),注意后面符號(hào)_用于加載。類的實(shí)例化def tools = new org.devops.tools(),使用類中的方法tools.PrintMes("獲取代碼",'green')。

          #!groovy
          @Library('jenkinslib') _
          def tools = new org.devops.tools()
          pipeline { agent { node { label "master" }}
          stages { //下載代碼 stage("GetCode"){ steps{ timeout(time:5, unit:"MINUTES"){ script{ tools.PrintMes("獲取代碼",'green') } } } } }}
          接下來(lái)在你的Jenkins上面運(yùn)行一下吧,測(cè)試一下是否能夠看到帶有綠色的文字呢?

          瀏覽 58
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天综合网久久综合网 | 中文字幕免费视频在线观看 | 黄色片天天在线 | 中国12一13毛片 | 插鸡巴网站一区二区三区豆花视频 |