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)文章
Java中循環(huán)冗余校驗(yàn)(CRC32)的實(shí)現(xiàn)
CRC校驗(yàn)實(shí)用程序庫(kù)在數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)通訊領(lǐng)域,為了保證數(shù)據(jù)的正確,就不得不采用檢錯(cuò)的手段,下面這篇文章主要給大家介紹了關(guān)于Java中循環(huán)冗余校驗(yàn)(CRC32)實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-10-10Java程序中添加播放MIDI音樂(lè)功能的實(shí)現(xiàn)方法詳解
本篇文章是對(duì)在Java程序中添加播放MIDI音樂(lè)功能的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05SpringBoot開(kāi)發(fā)中的數(shù)據(jù)源詳解
這篇文章主要介紹了SpringBoot開(kāi)發(fā)中的數(shù)據(jù)源詳解,數(shù)據(jù)源(Data Source)顧名思義,數(shù)據(jù)的來(lái)源,是提供某種所需要數(shù)據(jù)的器件或原始媒體,在數(shù)據(jù)源中存儲(chǔ)了所有建立數(shù)據(jù)庫(kù)連接的信息,需要的朋友可以參考下2023-09-09java配置變量的解釋?zhuān)徇\(yùn)他人優(yōu)質(zhì)評(píng)論(推薦)
這篇文章主要介紹了java配置變量,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04Java實(shí)現(xiàn)簡(jiǎn)單碰撞檢測(cè)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單碰撞檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(30)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你2021-07-07IDEA2020.1使用LeetCode插件運(yùn)行并調(diào)試本地樣例的方法詳解
這篇文章主要介紹了IDEA2020.1使用LeetCode插件運(yùn)行并調(diào)試本地樣例的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-09-09