本文同步在微信訂閱號上發布,如各位小伙伴們喜歡我的文章,也可以關注我的微信訂閱號:woaitest
1.pipeline概述
1.1 什么是pipeline
從某種抽象層次上講,部署流水線(Deployment pipeline)是指從
軟體版本控制庫到用戶手中這一程序的自動化表現形式,——《持續交付-發布可靠軟體的系統方法》
? ? [作者:Surpassme]? pipeline 英語愿意為管道,在Jenkins里面可以理解為,是一套作業流框架,它將原本各個彼此獨立的任務連接起來,實作一些比較復雜的作業流程,整個運行流程看起來就像是一個管道一樣,
? ? Jenkins 2.x可以支持pipeline as code,即通過代碼來描述部署流水線,使用代碼而不是UI的意義在于:
- 更好地版本化:將pipeline提交到版本管理庫中,可以更好的進行版本管理
- 更好地協作:pipeline的每次修改對所有人均是可見的,也可對pipeline進行代碼審查
- 更好的復用性:手動操作配置沒有辦法比較難直接復用,而代碼則可以
- 更直觀的作業流程:通過pipeline可以更加直觀看到當前整個作業流所涉及到的各個環節等資訊
1.2 pipeline 語法選擇
? ? [作者:Surpassme]? Jenkins 團隊在一開始實作Jenkins pipeline時,Groovy被選為基礎來實作,因此在寫pipeline時,很像是在寫Groovy代碼,從而有很大的靈活性和可擴展性,因此pipeline也被分成兩種格式的語法:腳本式語法(Scripted)和宣告式語法(Declarative)
- 腳本式語法
node {
stage("Build") {
println "構建應用"
}
stage("Test") {
println "測驗應用"
}
stage("Deploy"){
try{
println "部署應用"
}
catch(err){
// 捕獲例外
throw err
}
}
}
- 宣告式語法
pipeline{
agent any
stages{
stage("Build"){
steps{
echo "構建應用"
}
}
stage("Test"){
steps{
echo "測驗應用"
}
}
stage("Deploy"){
steps{
echo "部署應用"
}
}
}
post {
failure{
echo "運行失敗"
}
}
}
? ? 以下兩種語法格式差異如下所示:
- 腳本式
語法靈活、可擴展,也意味著更復雜,適合于對于Groovy非常熟悉的團隊或個人 - 宣告式
語法簡單、更結構化
pipeline插件從2.5版本開始,同時支持兩種格式的語法,后續示例均采用宣告式語法
1.3 Jenkinsfile
? ? [作者:Surpassme]? Jenkinsfile是一個文本檔案,是pipeline概念在Jenkins中的具體體現形式,類似于Dockerfile與Docker的關系,
如果在Jenkins使用pipeline,需要確認是否安裝pipeline插件,
? ? pipeline 的代碼可以直接寫到Jenkins里面也可以通過版本管理工具來拉取,gitlab拉取示例如下所示:

腳本路徑:就是pipeline的檔案名,默認為Jenkinsfile
原文地址:https://www.jianshu.com/p/84ba1e0fd6b5
本文同步在微信訂閱號上發布,如各位小伙伴們喜歡我的文章,也可以關注我的微信訂閱號:woaitest,或掃描下面的二維碼添加關注:

作者: Surpassme
來源: http://www.jianshu.com/u/28161b7c9995/
http://www.cnblogs.com/surpassme/
宣告:本文著作權歸作者所有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出 原文鏈接 ,否則保留追究法律責任的權利,如有問題,可發送郵件 聯系,讓我們尊重原創者著作權,共同營造良好的IT朋友圈,
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/539184.html
標籤:其他
