Blue Ocean簡單介紹
Blue Ocean能夠自動的創(chuàng)建和編寫你的Jenkinsfile委煤,并且會對Jenkinsfile進(jìn)行版本控制。Jenkinsfile主要記錄每個stage具體處理哪些內(nèi)容饲帅,不同階段的stage構(gòu)成一個完整的pipeline。目前版本不支持svn辙浑,jenkins團(tuán)隊正在修復(fù)大量svn相關(guān)的bug,后期可能會考慮svn集成升略。
環(huán)境說明
- centos 6.8
- Jenkins 2.161.1以上版本[盡量選擇最新版本包]
- Pipeline插件
- Blue Ocean插件
- gitlab代碼倉庫【目前不支持svn】
Blue Ocean的安裝
選擇Blue Ocean后會自動安裝依賴包偎巢,建議安裝選擇下載待重啟后安裝蔼夜。如下圖進(jìn)行插件安裝,安裝后重啟進(jìn)程压昼。
Blue Ocean的圖形編輯
進(jìn)入這步證明已經(jīng)完成重啟進(jìn)程操作求冷,可以直接點擊進(jìn)入Blue Ocean功能翠订,如下創(chuàng)建第一個流水線。因為我的倉庫是gitlab遵倦,所以選擇git。倉庫URL選擇你的項目路徑官撼,如:git@gitlab.example.com:vincent/test.git梧躺。
填寫后會出現(xiàn)一個ssh key,把這個key在gitlab上授權(quán)一下傲绣。如下:
授權(quán)后進(jìn)入后續(xù)創(chuàng)建操作掠哥,這個過程可能比較長需要等。如果你的倉庫根目錄有Jenkinsfile秃诵,則直接開始第一次構(gòu)建過程续搀。如果倉庫中不含Jenkinsfile則開啟pipeline-editor,圖形化編輯工作流。如下:
編輯完后會生成Jenkinsfile菠净,并提交到你的倉庫根目錄禁舷,開始執(zhí)行一次完整的構(gòu)建過程。
生成的jenkinsfile
每次修改流水線工作流程并提交修改會修改一次Jenkinsfile毅往,Jenkinsfile如下格式牵咙。具體如何修改Jenkinsfile可以參照官方文檔:https://jenkins.io/doc/book/pipeline/syntax/
pipeline {
agent any
stages {
stage('clean env') {
parallel {
stage('clean env') {
steps {
echo 'test'
sh 'echo "this is test"'
}
}
stage('clean env1') {
steps {
sh '''echo "this is clean env1"
sleep 10'''
}
}
}
}
stage('switch') {
input {
message 'Should we continue?'
id 'Yes, we should.'
submitter 'alice,bob'
parameters {
string(name: 'PERSON', defaultValue: 'Mr Jenkins', description: 'Who should I say hello to?')
}
}
steps {
echo "Hello, ${PERSON}, nice to meet you."
}
}
stage('build code') {
steps {
sh '''echo "build code start"
sleep 10
echo "build code finish"'''
}
}
stage('stg deployment') {
parallel {
stage('deployment') {
steps {
timeout(time: 50, activity: true) {
sh '''echo "start deploy"
sleep 60
echo "deploy success"'''
}
}
}
stage('stg deployment1') {
steps {
sh '''echo "error deployment"
exit 1
echo "error deployment exit"'''
}
}
}
}
stage('prd deployment') {
steps {
sh '''echo "start prd deployment "
sleep 10
echo "prd deployment success"'''
}
}
}
}
執(zhí)行工作流
可以通過在Blue Ocean界面觸發(fā)執(zhí)行操作,如下:
參考文檔
https://jenkins.io/doc/book/pipeline/
https://jenkins.io/doc/book/pipeline/syntax/
https://jenkins.io/doc/book/pipeline/jenkinsfile/