使用 Jenkins 2 管道指令碼配置一個簡單的構建專案

這裡我們將在 Jenkins 2 中建立一個 Groovy 管道來執行以下步驟:

  • 如果新程式碼已提交到我們的專案,則每 5 分鐘驗證一次
  • 來自 SCM repo 的結賬程式碼
  • Maven 編譯我們的 Java 程式碼
  • 執行我們的整合測試併發布結果

以下是我們將採取的步驟:

  1. 確保我們至少有一個 2.0 Jenkins 版本(你可以在頁面的右下角檢視),例如:

    StackOverflow 文件

  2. 在 Jenkins 主頁上,單擊 New Item

  3. 輸入專案名稱並選擇管道

  4. Build Triggers 部分中,選擇 Poll SCM 選項並新增以下 5 分鐘的 CRON 計劃:*/5 * * * *

  5. 在“ 管道” 部分中,從 SCM 中選擇“ 管道指令碼” 或“ 管道指令碼”

  6. 如果你在上一步中從 SCM 選擇了管道指令碼,則現在需要在儲存庫 URL 中指定 SCM 儲存庫(Git, Mercurial, Subversion)URL,例如 http://github.com/example/example.git。你還需要在 example.git 儲存庫中指定 Groovy 指令碼檔案的指令碼路徑,例如 pipelines/example.groovy

  7. 如果以前單擊過 Pipeline Script ,則直接在 Groovy 指令碼視窗中複製以下 Groovy 程式碼; 如果從 SCM 中選擇了 **Pipeline Script,**則複製到 example.groovy 中 ****

node('remote') {
    // Note : this step is only needed if you're using direct Groovy scripting
    stage 'Checkout Git project'
    git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'
    def appVersion = version()
    if (appVersion) {
        echo "Building version ${appVersion}"
    }

    stage 'Build Maven project'
    def mvnHome = tool 'M3'
    sh "${mvnHome}/bin/mvn -B -Dmaven.test.failure.ignore verify"
    step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*.xml'])
}
def version() {
    def matcher = readFile('pom.xml') =~ '<version>(.+)</version>'
    matcher ? matcher[0][1] : null
}

在這裡,你現在應該能夠使用 Jenkins 2 Groovy 管道編譯和測試你的第一個 Jenkins 專案。