從 Jenkins 管道觸發另一個作業
一、概述
Jenkins 是一種自動化服務器,可為開發人員提供自動構建、測試和部署應用程序的能力。 Jenkins 服務器執行作業,可以手動或自動觸發。此外,我們可以同時或按特定順序運行這些作業。
在本教程中,我們將逐步完成創建自由式作業和管道作業以觸發另一個作業的過程。
2. 工作設置
在 Jenkins 中,我們可以創建作業來運行代碼覆蓋測試、集成測試和部署應用程序。為了執行一組任務,Jenkins 提供了不同類型的作業。此外,根據任務,我們可能必須觸發內部作業。
在這裡,我們將構建兩個作業,一個父管道作業和一個子自由式作業。我們將從 Jenkins UI 手動運行父作業,而子作業將由父作業在內部觸發。
我們先來看孩子的工作。
2.1.創建自由式子作業
在我們開始之前,讓我們先構建一個演示設置。我們將使用自由式作業類型來創建子作業。自由式構建作業易於使用,並且有許多預製選項。此外,要創建自由式作業,我們需要遵循以下步驟:
單擊 Jenkins 儀表板中的
New
Item
將“工作名稱”設置為
childJob
選擇“工作類型”為“
Freestyle project”
在構建步驟的執行 shell 中添加
echo “childJob”
命令保存工作
一切都應該類似於這樣:
作為上述步驟的結果,我們現在能夠創建一個簡單的自由式作業,它可以獨立運行,也可以由另一個作業觸發。
2.2.創建管道父作業
Jenkins 管道是一系列相互關聯的事件或作業,它們在我們的軟件開發工作流程中產生持續交付。在這裡,我們將創建一個管道作業,它將在內部調用我們剛剛創建的childJob
。讓我們看一下管道作業的 Groovy 腳本:
pipeline {
agent any
stages {
stage('build') {
steps {
echo "parentJob"
}
}
stage('triggerChildJob') {
steps {
build job: "childJob", wait: true
}
}
}
}
上面的腳本在管道作業中包含兩個階段, build
和triggerChildJob
。第一階段只是執行echo
命令,而第二階段會在內部觸發childJob
。
現在讓我們使用上面的 Groovy 腳本創建一個管道作業:
單擊 Jenkins 儀表板中的
New
Item
將“作業名稱”設置為
parentJob
選擇“工作類型”作為
Pipeline project
如上所述添加 Groovy 腳本並保存作業
因此:
我們現在可以從 Jenkins 管道作業中觸發自由式作業。請注意,父作業構建將分階段進行,如下圖所示:
在上面的輸出中,我們可以看到兩個階段都已build,
並且triggerChildJob
成功運行。
3.結論
在本文中,我們演示瞭如何在 Jenkins 中創建一個內部觸發另一個作業的作業。作為第一步,我們創建了一個示例自由式 Jenkins 作業,然後創建了一個管道作業以在內部觸發它。
我們可以在 GitHub 上找到管道作業的腳本。