一、pipeline 簡(jiǎn)介
?pipeline ,簡(jiǎn)單來(lái)說(shuō),就是一套運(yùn)行在 jenkins 上的工作流框架。將原來(lái)獨(dú)立運(yùn)行于單個(gè)或者多個(gè)節(jié)點(diǎn)的任務(wù)連接起來(lái),實(shí)現(xiàn)單個(gè)任務(wù)難以完成的復(fù)雜流程 編排 和 可視化 的工作。
二、pipeline 有哪些好處
- 代碼:pipeline 以代碼的形式實(shí)現(xiàn),通常被檢入源代碼控制,使團(tuán)隊(duì)能夠編輯,審查和迭代其傳送流程。
- 持久:無(wú)論是計(jì)劃內(nèi)的還是計(jì)劃外的服務(wù)器重啟,pipeline 都是可以恢復(fù)的。
- 可停止:pipeline 可接受交互式輸入,以確定是否繼續(xù)執(zhí)行 pipeline。
- 多功能:pipeline 支持復(fù)雜的持續(xù)交付角球。支持 fork/join ,循環(huán)執(zhí)行,并行執(zhí)行任務(wù)的功能。
- 多擴(kuò)展:pipeline 插件支持其 DSL的 自定義擴(kuò)展,以及與其他插件集成的多個(gè)選項(xiàng)。
三、創(chuàng)建 pipeline 流程步驟
pipeline 腳本由 Groovy 語(yǔ)言實(shí)現(xiàn)。
pipeline 支持兩種語(yǔ)法:Declarative(聲明式腳本)| Scripted Pipeline (腳本式語(yǔ)法)
pipeline 支持兩種創(chuàng)建方法:可以直接在 jenkins - GUI 界面中創(chuàng)建。也可以創(chuàng)建在項(xiàng)目源代碼根目錄當(dāng)中。
安裝 pipline 插件:Pipeline
四、聲明式語(yǔ)法
1
2
3
4
5
6
7
8
9
10
|
pipeline { :開(kāi)頭聲明此腳本是 Declarative式腳本 agent any :模塊一,此處填寫構(gòu)建所需的環(huán)境,代理,docker環(huán)境,kubernetes環(huán)境、 maven、jdk工具等等 stages:模塊二,階段記錄所有步驟,代表構(gòu)建項(xiàng)目的階段開(kāi)頭 ?stage:階段步驟,一個(gè) stages 中包含多個(gè) stage,對(duì)應(yīng) 拉取代碼、編譯打包、部署發(fā)布等等 ? steps:步驟實(shí)現(xiàn),具體實(shí)現(xiàn)該步驟的命令,如何通過(guò)編寫來(lái)實(shí)現(xiàn)步驟 |
code:拉取代碼
build project:編譯打包
publish project:部署上線
入門語(yǔ)法案例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
pipeline { agent any //環(huán)境maven、jdk等 stages { //項(xiàng)目構(gòu)建 stage( 'pull code' ) { //拉取代碼 steps { //具體實(shí)施步驟 echo 'pull code' // 拉取代碼命令 } } stage( 'build project' ) { // 編譯打包 steps { //具體實(shí)施步驟 echo 'build project' // 打包命令 } } stage( 'publish project' ) { // 部署上線 steps { //具體實(shí)施步驟 echo 'publish project' // 部署命令 } } } } |
五、腳本示語(yǔ)法
node:聲明此腳本是Scripted Pipeline
?def mvnHome:指定腳本運(yùn)行所需要的各種環(huán)境、工具等
?stage:指定不同的構(gòu)建步驟,如拉取代碼,編譯打包,部署上線等,可以有多個(gè) stage
1
2
3
4
5
6
7
8
9
10
11
12
|
node { def mvnHome stage( 'pull code' ) { //步驟一,拉取代碼 echo "pull code" } stage( 'Build project' ) { //步驟二,構(gòu)建打包 echo "build project" } stage( 'publish project' ) { //步驟三,部署上線 echo "publish project" } } |
六、流水線語(yǔ)法
片段生成器:可以自動(dòng)生產(chǎn)拉取、打包、部署的代碼。直接粘貼到 pipeline即可使用。
Declarative Directive Generator:聲明式指令生成器。
Declarative Online Documentation:聲明式指令官方文檔
片段生成器部署上線示例:1、拉取代碼:check out from version control
2、編譯打包 sh: Shell Script
3、部署上線 deploy: Deploy war/ear to a container
4、水線階段視圖:
流水線腳本管理 Jenkinsfile
流水線腳本有兩種寫入管理方法:
?1、在 Jenkins - Gui 界面里寫
?2、存放在 gitlab代碼層,與 src pom.xml 同目錄。命名為 Jenkinsfile ( j 必須大寫 ) 文件,填寫流水線執(zhí)行步驟。
代碼層的 Jenkinsfile ,方便管理,方便備份,不會(huì)因?yàn)?jenkins宕機(jī)丟失整個(gè)流水線配置。
然后在 jenkins - GUI 界面 通過(guò) pipeline SCM 連接到 gitlab倉(cāng)庫(kù),獲取 Jenkinsfile 文件
到此這篇關(guān)于jenkins 構(gòu)建項(xiàng)目之 pipeline基礎(chǔ)教程的文章就介紹到這了,更多相關(guān)jenkins pipeline基礎(chǔ)內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/shm19990131/article/details/107507922