流水線的語法分為: 聲明式和腳本式
基本操作
沒有pipeline插件的先安裝一下甩恼。創(chuàng)建一個流水線項目偶摔。
創(chuàng)建完成后,點擊配置纯露,直接拉到最后
之前做過傳統(tǒng)的項目配置剿骨。回憶一下流程:
需求:
參數(shù)化構建埠褪,選擇對應分支浓利。拉取gitlab代碼,實現(xiàn)項目更新钞速。
我們思路還是以前的配置思路贷掖,點擊那個流水線語法,點擊第二項Directive Generator渴语,
選擇parameters (上面的指令表寫明了它就是負責提供參數(shù)化的)苹威,然后就像配置傳統(tǒng)項目那樣填寫信息
最終點擊生成代碼。
自動生成流水線代碼
復制下來驾凶⊙栏Γ回到之前的流水線頁面
不清楚語法結構的,可以先生成一個測試腳本語法
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
}
}
agent any ---控制執(zhí)行的節(jié)點
stage是任務塊
steps 是某一任務中的步驟塊
將剛才生成的git參數(shù)化構建(功能是獲取git分支列表)的代碼粘貼上面
再去代碼片短器生成獲取git代碼的
生成出來的就是 “拉取代碼”這個任務塊的主要步驟调违,所以將其粘貼到響應的版塊中
pipeline {
agent any
parameters {
gitParameter branch: '', branchFilter: 'origin/(.*)', defaultValue: 'master', description: '選擇你要的分支', name: 'branch', quickFilterEnabled: false, selectedValue: 'NONE', sortMode: 'NONE', tagFilter: '*', type: 'PT_BRANCH'
}
stages {
stage('拉取代碼') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/$branch']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'd386c248-cf59-45c5-9731-b8f2d42411e9', url: 'http://192.168.1.112:85/webservice/devops_project.git']]])
}
}
stage('打印-查看') {
steps {
sh label: '', script: 'ls'
}
}
}
}
PS:默認分支名:最好不帶origin/ 窟哺,直接寫master,不然有時候直接用分支過濾翰萨,會不起作用脏答。直接寫master更省事。
運行一次亩鬼,第一次會失敗殖告,執(zhí)行第二次就會獲取到分支列表正常執(zhí)行了。并且會發(fā)現(xiàn)雳锋,配置項目里jenkins已經(jīng)根據(jù)流水線代碼完成了傳統(tǒng)的參數(shù)化配置界面黄绩。
點擊Log可以查看個步驟的執(zhí)行過程與結果。
if判斷
流水線腳本中還支持條件判斷玷过。這要用到開頭的指令清單中提到 script 關鍵字,如
結果:
將腳本文件放在git項目倉庫中
一般來講爽丹,最好是測試沒問題的流水線腳本跑通以后,確認無誤辛蚊。將其復制下來粤蝎,在git倉庫中,新建Jenkinsfile 空文件袋马,粘貼上去初澎。提交版本庫中。
運行的時候虑凛,引用git倉庫中的jenkinsfile文件
我這里直接在dev創(chuàng)建了一個jenkinsfile. 如果在master創(chuàng)建碑宴,以后創(chuàng)建新分支的時候都會自動創(chuàng)建好jenkinsfile為其他分支創(chuàng)建流水線腳本。