全部文章
DevOps神器Jenkins使用精髓第O彈之開頭
DevOps神器Jenkins使用精髓第一彈之初始化配置
DevOps神器Jenkins使用精髓第三彈之常用插件
DevOps神器Jenkins使用精髓第四彈jenkins Pipeline起步
DevOps神器Jenkins使用精髓第五彈之API的使用
一、什么是Pipeline
Jenkins Pipeline是一套插件,提供了一組可擴展的工具忠藤,將我們原來意義上的手動配置每一個Jenkins Job的具體配置項變成將所有配置代碼化, 并再次配合Gitlab等版本控制系統去保存我們的代碼配置, 這樣子無論Job在未來需要更新, 或者需要回滾到之前的某一個配置, 又或者一個新的Job需要參考之前的老Job的配置并直接套用, 又或者我們需要去批量生成若干個Job配置, 我們都可以像管理軟件代碼的方式去管理我們的Jenkins Job配置. 這樣就極大的簡化我們自動化部署的結構, 將以前需要手動配置Job的這個步驟, 直接代碼化. 最終體現出我們DevOps的最終目標.
二、入門示例
讓我們創(chuàng)建一個Pipeline項目
創(chuàng)建后直接進入Pipeline腳本編寫位置
為了方便大家復制宛裕,我把代碼貼到下面
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'ls /'
}
}
stage('Test'){
steps {
sh 'ls /etc'
}
}
stage('Deploy') {
steps {
sh 'ls -la /'
}
}
}
}
查看執(zhí)行結果:
我執(zhí)行了6次構建卵酪,其中前5次我估計寫錯,圖中黃色圓圈正是代碼中stage部分翻伺,Pipeline有一個特點喧枷,就是當任何一段代碼執(zhí)行報錯篮奄,接下來代碼都不會被執(zhí)行,相當于編程中函數的return功能割去。當然代碼中可以加入post模塊用來返回Pipeline結果窟却,先不要急,我將在后續(xù)詳細講解語法時說到呻逆。
三夸赫、Pipeline腳本管理的另一種模式
官方解釋:
復雜的Pipeline難以在Pipeline配置頁面的文本區(qū)域內進行寫入和維護。為了使這更容易咖城,Pipeline也可以寫在文件中茬腿,作為Jenkinsfile,并檢查源控件(比如git)宜雀,Jenkins可以通過Pipeline腳本從SCM選項加載的控件切平。選擇SCM選項中的Pipeline腳本后,不要在Jenkins UI中輸入任何Groovy代碼; 您只需指定要從其中檢索Pipeline的源代碼中的路徑辐董。更新指定的存儲庫時(比如git)悴品,只要Pipeline配置了SCM輪詢觸發(fā)器,就會觸發(fā)一個新構建。
我來翻譯:
說白了就是把頁面中的腳本放入一個jenkinsfile文件中編寫苔严,并放入git倉庫進行管理定枷,同時jenkins項目配置git地址,使用git倉庫的webhook也好jenkins的CSM輪詢也罷届氢,又或者手動觸發(fā)欠窒,都可以讓這個jenkins Pipeline項目基于你編寫的jenkinsfile進行構建。
下面看看具體配置
jenkins項目中Pipeline的設置
gitlab中的jenkinsfile