最近研究CI/CD,項目多分支情況下怎麼能高效持續集成、持續部署,造過jenkins的老鐵們都知道,Jenkins 1.x是通過界面手動操作來“描述”部署流水線,那麼Jenkins2.x給我們帶來了福音,2.x支持pipeline as code,即通過“代碼”來描述部署流水線。讓我們擁抱pipeline as code,放棄手動操作。
首先我們引入一個文本文件Jenkinsfile,也就是部署流水線在jenkins中的表現形式,所有部署流水線的邏輯都寫在了jenkinsfile中。
下面我們給jenkins安裝pipeline插件,安裝完就可以創建pipeline項目了,
pipeline 2.5開始,支持腳本式(Scripted)語法、聲明式(Declarative)語法。 腳本式靈活、可擴展、更復雜,聲明式更簡單、更結構化,我們選擇聲明式語法,語法如下:
pipeline{
agent any
stages{
stage('build'){
steps{
echo "building"
}
}
}
}
pipeline:代表整條流水線,包含整條流水線的邏輯,
stage:代表流水線的階段。每個階段必須有名稱。
stages:流水線中多個stage的容器,至少包含一個stage
steps:代表階段中的一個或多個具體步驟
我們可以參考這裏語法生成:
選擇所需步驟,點擊生成腳本
配置jenkins url
進入項目配置分支源
重點配置來了:
gitlab配置webhook:
點擊test,查看結果
{"status":"ok","data":{"triggerResults":{"pipeline_project":{"triggered":true,"id":115,"url":"queue/item/115/"}}}}
返回jenkins job:
構建成功!
jenkinsfile:
pipeline {
agent any
stages {
stage('source') {
steps {
git(changelog: true, poll: true, branch: 'dev', credentialsId: 'bc2e8d23-494e-4946-82d0-e19b84891f41', url: 'http://ip:8080/root/pipeline_project.git')
}
}
stage('build') {
steps {
sh 'mvn clean install -Dmaven.test.skip=true'
}
}
}
}