Jenkins項目構建類型--Pipeline流水線項目構建(20200916) 重要


Pipeline簡介</DI< div>

1)概念

Pipeline,簡單來說,就是一套運行在 Jenkins 上的工作流框架,將原來獨立運行於單個或者多個節點

的任務連接起來,實現單個任務難以完成的復雜流程編排和可視化的工作。 </DI< div>

2)使用Pipeline有以下好處(來自翻譯自官方文檔):

代碼:Pipeline以代碼的形式實現,通常被檢入源代碼控制,使團隊能夠編輯,審查和迭代其傳送流

程。 持久:無論是計划內的還是計划外的服務器重啟,Pipeline都是可恢復的。 可停止:Pipeline可接

收交互式輸入,以確定是否繼續執行Pipeline。 多功能:Pipeline支持現實世界中復雜的持續交付要

求。它支持fork/join、循環執行,並行執行任務的功能。 可擴展:Pipeline插件支持其DSL的自定義擴

展 ,以及與其他插件集成的多個選項。 </DI< div>

安裝Pipeline插件

Manage Jenkins->Manage Plugins->可選插件</DI< div>

image

安裝插件后,創建項目的時候多了“流水線”類型</DI< div>

image

Pipeline語法快速入門 </DI< div>

創建項目 </DI< div>

image

流水線->選擇HelloWorld模板</DI< div>

image

生成內容如下:

pipeline {

agent any

stages {

stage('Hello') {

steps {

echo 'Hello World'

}

}

}

}

stages:代表整個流水線的所有執行階段。通常stages只有1個,里面包含多個stage

stage:代表流水線中的某個階段,可能出現n個。一般分為拉取代碼,編譯構建,部署等階段.

steps:代表一個階段內需要執行的邏輯。steps里面是shell腳本,git拉取代碼,ssh遠程發布等任意內

容。

編寫一個簡單聲明式Pipeline:

pipeline {

agent any

stages {

stage('拉取代碼') {

steps {

echo '拉取代碼'

}

}

stage('編譯構建') {

steps {

echo '編譯構建'

}

}

stage('項目部署') {

steps {

echo '項目部署'

}

}

}

}



點擊構建,可以看到整個構建過程</DI< div>

image

2)Scripted Pipeline腳本式-Pipeline

創建項目

image

這次選擇"Scripted Pipeline</DI< div>

image

node {

def mvnHome

stage('Preparation') { // for display purposes

}

stage('Build') {

}

stage('Results') {

}

}


Node:節點,一個 Node 就是一個 Jenkins 節點,Master 或者 Agent,是執行 Step 的具體運行

環境,后續講到Jenkins的Master-Slave架構的時候用到。

Stage:階段,一個 Pipeline 可以划分為若干個 Stage,每個 Stage 代表一組操作,比如:

Build、Test、Deploy,Stage 是一個邏輯分組的概念。

Step:步驟,Step 是最基本的操作單元,可以是打印一句話,也可以是構建一個 Docker 鏡像,

由各類 Jenkins 插件提供,比如命令:sh ‘make’,就相當於我們平時 shell 終端中執行 make 命令

一樣。

編寫一個簡單的腳本式Pipeline

node {

def mvnHome

stage('拉取代碼') { // for display purposes

echo '拉取代碼'

}

stage('編譯構建') {

echo '編譯構建'

}

stage('項目部署') {

echo '項目部署'

}

}

構建結果和聲明式一樣!


流水線聲明式腳本操作---------------------------------------------------------------------

拉取代碼 (都是靠魔板生成代碼的模式)

生成git 代碼,打開  流水線語法 

image

image

image

image

image

image

image

image

image

編譯打包

image

image

image

image

或者  直接sh  后面加上要執行的腳本或命令

image



部署

image

image

image

image

假如代碼需要同時部署到多台的tomcat,選擇添加多台。如下圖

image

image


Pipeline Script from SCM--------------------------------------(調用腳本方式)

剛才我們都是直接在Jenkins的UI界面編寫Pipeline代碼,這樣不方便腳本維護,建議把Pipeline腳本放

在項目中(一起進行版本控制)

1)在項目根目錄建立Jenkinsfifile文件,把內容復制到該文件中</DI< div>

image

把Jenkinsfifile上傳到Gitlab

image

image

image


2)在項目中引用該文件

image

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM