jenkins 構(gòu)建項(xiàng)目之 pipeline基礎(chǔ)教程
一、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ǔ)法
pipeline { :開(kāi)頭聲明此腳本是 Declarative式腳本
agent any :模塊一,此處填寫(xiě)構(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ò)編寫(xiě)來(lái)實(shí)現(xiàn)步驟
code:拉取代碼
build project:編譯打包
publish project:部署上線
入門(mén)語(yǔ)法案例:
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
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
流水線腳本有兩種寫(xiě)入管理方法:
1、在 Jenkins - Gui 界面里寫(xiě)
2、存放在 gitlab代碼層,與 src pom.xml 同目錄。命名為 Jenkinsfile ( j 必須大寫(xiě) ) 文件,填寫(xiě)流水線執(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)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot集成內(nèi)存數(shù)據(jù)庫(kù)Sqlite的實(shí)踐
sqlite這樣的內(nèi)存數(shù)據(jù)庫(kù),小巧可愛(ài),做小型服務(wù)端演示程序,非常好用,本文主要介紹了SpringBoot集成Sqlite,具有一定的參考價(jià)值,感興趣的可以了解一下2021-09-09
簡(jiǎn)述Java中進(jìn)程與線程的關(guān)系_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
在 Java 語(yǔ)言中,對(duì)進(jìn)程和線程的封裝,分別提供了 Process 和 Thread 相關(guān)的一些類。本文首先簡(jiǎn)單的介紹如何使用這些類來(lái)創(chuàng)建進(jìn)程和線程2017-05-05
解決Java編譯時(shí)錯(cuò)誤:A JNI error has occurred,ple
這篇文章主要介紹了解決Java編譯時(shí)錯(cuò)誤:A JNI error has occurred,please check your installation and try again,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
詳解五種方式讓你在java中讀取properties文件內(nèi)容不再是難題
這篇文章主要介紹了詳解五種方式讓你在java中讀取properties文件內(nèi)容不再是難題 ,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2016-12-12
java字節(jié)流知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家分享的是關(guān)于java字節(jié)流的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們跟著學(xué)習(xí)參考下。2019-07-07
詳解SpringBoot讀取resource目錄下properties文件的常見(jiàn)方式
這篇文章主要介紹了SpringBoot讀取resource目錄下properties文件的常見(jiàn)方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
idea如何解決commit代碼時(shí)一直code Analyze加載的問(wèn)題
文章介紹了解決Git提交代碼時(shí)出現(xiàn)codeAnalyze加載卡頓問(wèn)題的方法,即關(guān)閉IDEA中的相關(guān)設(shè)置選項(xiàng),作者分享個(gè)人經(jīng)驗(yàn),希望對(duì)大家有所幫助,并鼓勵(lì)支持腳本之家2025-01-01

