從某種抽象層次上講,部署流水線(deployment pipeline)是指從軟體版本控制庫到使用者手中這一過程的自動化表現形式。——《持續交付——發布可靠軟體的系統方法》
按《持續交付》中的定義,jenkins本來就支援pipeline(通常會把部署流水線簡稱為pipeline,本書會交替使用這兩個術語),只是一開始不叫pipeline,而叫任務。
所有的pipeline都會在jenkins上產生乙個jenkinsfile檔案. jenkins預設是不支援jenkinsfile的。我們需要安裝pipeline外掛程式
指令碼式語法更像是groovy**,有著巨大的靈活性,但是鑑於使用此種語法還需要去了解groovy**,這裡就先不去做研究
node
stage('test')
stage('deploy') catch(err)
}}
在jenkins社群推介的pipeline語法中,宣告式語法更加得到青睞,因為它更加簡單,更結構化.
pipline
}stage('test')
}stage('deploy')
}} post
}}
pipeline }}
}
jenkins pipeline其實就是基於groovy語言實現的一種dsl(領域特定語言),用於描述整條流水線是如何進行的。流水線的內容包括執行編譯、打包、測試、輸出測試報告等步驟。
pipeline }}
}
post是整個pipeline步驟完成之後的內容,相當於是乙個反饋部分
根據pipeline或階段的完成狀態,post部分分成多種條件塊,包括:
• always:不論當前完成狀態是什麼,都執行。
• fixed:上一次完成狀態為失敗或不穩定(unstable),當前完成狀態為成功時執行。
• regression:上一次完成狀態為成功,當前完成狀態為失敗、不穩定或中止(aborted)時執行。
• aborted:當前執行結果是中止狀態時(一般為人為中止)執行。
• failure:當前完成狀態為失敗時執行。
• success:當前完成狀態為成功時執行。
• unstable:當前完成狀態為不穩定時執行。
• cleanup:清理條件塊。不論當前完成狀態是什麼,在其他所有條件塊執行完成後都執行。post部分可以同時包含多種條件塊。
指令是pipeline基礎結構中的補充:
# 在使用指令時,需要注意的是每個指令都有自己的「作用域」。如果指令使用的位置不正確,jenkins將會報錯
• environment:用於設定環境變數,可定義在stage或pipeline部分。
• input:定義在stage部分,會暫停pipeline,提示你輸入內容。
• options:用於配置jenkins pipeline本身的選項,比如options 指當pipeline失敗時再重試2次。options指令可定義在stage或pipeline部分。
• parallel:並行執行多個step。在pipeline外掛程式1.2版本後,parallel開始支援對多個階段進行並行執行。
• parameters:與input不同,parameters是執行pipeline前傳入的一些引數。
• triggers:用於定義執行pipeline的觸發器。
• when:當滿足when定義的條件時,階段才執行。
jenkins入門安裝
拉取映象 docker pull jenkins jenkins建立乙個資料夾對映jenkins掛載目錄 這裡資料夾建立在 home下 mkdir jenkins mount給予許可權 chmod 777 jenkins mount執行映象 docker run d p 10240 8080 p 1...
Jenkins 入門篇(二)
昨夜西風凋碧樹,獨上高樓,望盡天涯路 官網原文 前面我們注意到了jenkins的agent命令。該命令告訴jenkins在 以及如何執行pipeline。agent對於所有的pipeline都是必須的。agent確保了所有的steps中的 塊排隊執行。jenkins在執行指令碼的時候會存在乙個執行器...
持續整合介紹Jenkins入門
25.1 ci cd介紹 網際網路軟體的開發和發布,已經形成了一套標準流程,假如把開發工作流程分為以下幾個階段 編碼 構建 整合 測試 交付 部署 正如你在上圖中看到,持續整合 continuous integration 持續交付 continuous delivery 和持續部署 continu...