<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Jenkins Share Library教程 —— 開發入門

      寫在前面

      今日心情有點小喪,但總體問題不大,有一些突然來的活,還沒整完,明天再繼續搞把。

      有難度嗎?

      有一些把,我覺得還是要做一些自己不擅長的工作,才會有成長的吧,為什么?

      用我們測試同學的話術,就是提升“自己”的“測試覆蓋率”,即解決問題的能力,核心就是會了就是賺了!

      學習目標

      通過本教程,你將學會:

      ? 理解 Jenkins Shared Library 是什么
      ? 創建自己的共享庫項目(Git 倉庫)
      ? 在 Jenkinsfile 中調用共享庫
      ? 實際運行一個示例流水線
      ? 能獨立維護公司內部的通用 Jenkins 函數


      一、什么是 Jenkins Shared Library?

      可以把 Jenkins 比喻成一個“廚師”,而 Shared Library 就是一份“菜譜合集”。

      在沒有共享庫時,每個 Jenkinsfile 都要寫重復的步驟,比如:

      pipeline {
        agent any
        stages {
          stage('Build') {
            steps {
              sh 'mvn clean install'
            }
          }
          stage('Test') {
            steps {
              sh 'mvn compile test'
            }
          }
        }
      }
      

      幾百個項目要是都這樣寫的話,會非常麻煩。

      于是我們可以把這些公共邏輯抽取出來放到一個“共享庫”里,以后只要一句話就能復用。

      也就是可以直接通過方法實現調用:

      @Library('my-shared-lib') _
      pipeline {
        agent any
        stages {
          stage('Build & Test') {
            steps {
              myPipeline.buildAndTest()
            }
          }
        }
      }
      

      這樣,所有項目就能共享一套邏輯,方便統一管理和維護。


      二、準備環境

      你需要的環境

      工具 說明
      Jenkins 版本 >= 2.3(最好用 LTS)
      Git 版本管理工具
      一個 Git 倉庫 用來存放共享庫代碼(GitHub / GitLab 都行)

      三、創建共享庫項目

      在你的 Git 倉庫中新建項目,例如:

      https://github.com/yourname/jenkins-shared-lib-demo
      

      項目結構如下:

      jenkins-shared-lib-demo/
      ├── vars/
      │   └── helloWorld.groovy
      ├── src/
      │   └── org/example/Utils.groovy
      └── resources/
          └── templates/email.txt
      

      四、編寫第一個共享函數

      新建文件:vars/helloWorld.groovy

      def call(String name = 'Jenkins') {
          echo "Hello, ${name}! Welcome to Shared Library!"
      }
      

      解釋:

      • vars/ 目錄下的每個 .groovy 文件會自動變成一個全局函數。
      • 文件名 helloWorld.groovy 就對應函數名 helloWorld()
      • def call(...) 是約定寫法,表示默認執行邏輯。

      五、在 Jenkins 中配置共享庫

      1?? 打開 Jenkins → “系統管理” → “系統配置”

      2?? 滾動到 “Global Pipeline Libraries(全局流水線庫)”

      點擊 “Add” 新建一條:

      字段
      名稱 my-shared-lib(后面要引用這個名字)
      Default version main(你的 Git 默認分支)
      Source Code Management Git
      Repository URL https://github.com/yourname/jenkins-shared-lib-demo.git

      保存。


      六、在 Jenkinsfile 中使用

      在你的項目 Jenkinsfile 寫:

      @Library('my-shared-lib') _
      pipeline {
        agent any
        stages {
          stage('Say Hello') {
            steps {
              helloWorld('軟件測試君')
            }
          }
        }
      }
      

      運行后,你會在控制臺輸出看到:

      [Pipeline] echo
      Hello, 軟件測試君! Welcome to Shared Library!
      

      恭喜!你已經完成了第一個共享庫調用!


      七、進階示例(模塊化封裝)

      創建一個更實用的函數,比如構建 Maven 項目:

      ?? vars/buildApp.groovy

      def call(Map config = [:]) {
          stage('Build') {
              sh 'mvn clean install'
          }
          stage('Test') {
              sh 'mvn compile test'
          }
          if (config.deploy == true) {
              stage('Deploy') {
                  echo "Deploying to ${config.env ?: 'staging'}..."
              }
          }
      }
      

      然后 Jenkinsfile:

      @Library('my-shared-lib') _
      pipeline {
        agent any
        stages {
          stage('CI Flow') {
            steps {
              buildApp(env: 'prod', deploy: true)
            }
          }
        }
      }
      

      八、實踐練習

      練習 1:

      編寫一個 notifySlack.groovy,當構建失敗時自動通知 Slack。

      提示:

      def call(String message) {
          echo "Send Slack notification: ${message}"
      }
      

      練習 2:

      src/org/example/Utils.groovy 編寫工具類:

      package org.example
      
      class Utils {
          static String getTimestamp() {
              return new Date().format("yyyy-MM-dd HH:mm:ss")
          }
      }
      

      然后在 Jenkinsfile 調用:

      @Library('my-shared-lib') _
      import org.example.Utils
      
      pipeline {
        agent any
        stages {
          stage('Show Time') {
            steps {
              echo "Current time: ${Utils.getTimestamp()}"
            }
          }
        }
      }
      

      運行后,你會在控制臺輸出看到:

      image


      九、共享庫版本管理

      在企業項目中,你通常會:

      • 使用 Git tag 來發布共享庫版本(例如 v1.0.0
      • 在 Jenkinsfile 中固定使用特定版本:
      @Library('my-shared-lib@v1.0.0') _
      

      這樣能防止庫更新影響舊項目。


      恭喜你 ,到此Jenkins Share Library開發就算入門了。

      寫在最后

      改一改自己懶惰的毛病,學起來,順便也鍛煉下自己的寫作能力,沒有什么華麗的辭藻了,只剩下熱誠地堅持了!

      最后,感謝您的觀看,如文章對您有幫助,老規矩,點贊轉發就哦了,如有疑問,歡迎文末留言交流!

      posted @ 2025-10-13 21:01  久曲健  閱讀(81)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产色爱av资源综合区| 欧美肥老太wbwbwbb| 亚洲精品美女久久7777777| 99久久精品一区二区国产| 亚洲一区二区三区十八禁| 精品国产一区二区三区四区| 国产中文99视频在线观看| 亚洲国产激情一区二区三区| 无码一级视频在线| 国产精品青青青高清在线| 亚洲av无码成人精品区一区| 亚洲av无码牛牛影视在线二区 | 一本一道av无码中文字幕麻豆| 国产成人亚洲精品狼色在线| 中文字幕精品亚洲字幕成 | 国产精品九九九一区二区| 亚洲一区二区三区自拍公司| 国产免费一区二区不卡| 老熟女熟妇一区二区三区| 国产精品普通话国语对白露脸 | 亚洲国产成人久久77| 久久人妻精品国产| 被黑人巨大一区二区三区| 伊人久久大香线蕉网av| 婷婷六月天在线| 十八禁日本一区二区三区| 丰满少妇高潮在线播放不卡| 人妻丰满熟妇av无码处处不卡| 国产高清在线不卡一区| 99中文字幕国产精品| 久久精品波多野结衣| 国产一区二区高潮视频| 国产第一页浮力影院入口| 亚洲国产精品美日韩久久| 国产一区二区三区精品综合| 自拍第一区视频在线观看| 国产精品多p对白交换绿帽| 伊人精品成人久久综合| 亚洲成人av一区二区| 香港日本三级亚洲三级| 国产精品中文字幕免费|