使用 Jenkins 2 管道指令碼配置一個簡單的構建專案
這裡我們將在 Jenkins 2 中建立一個 Groovy 管道來執行以下步驟:
- 如果新程式碼已提交到我們的專案,則每 5 分鐘驗證一次
- 來自 SCM repo 的結賬程式碼
- Maven 編譯我們的 Java 程式碼
- 執行我們的整合測試併發布結果
以下是我們將採取的步驟:
-
確保我們至少有一個 2.0 Jenkins 版本(你可以在頁面的右下角檢視),例如:
-
在 Jenkins 主頁上,單擊 New Item
-
輸入專案名稱並選擇管道
-
在 Build Triggers 部分中,選擇 Poll SCM 選項並新增以下 5 分鐘的 CRON 計劃:
*/5 * * * *
-
在“ 管道” 部分中,從 SCM 中選擇“ 管道指令碼” 或“ 管道指令碼”
-
如果你在上一步中從 SCM 選擇了管道指令碼,則現在需要在儲存庫 URL 中指定 SCM 儲存庫(Git, Mercurial, Subversion)URL,例如
http://github.com/example/example.git
。你還需要在 example.git 儲存庫中指定 Groovy 指令碼檔案的指令碼路徑,例如pipelines/example.groovy
-
如果以前單擊過 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 專案。