流水線提供了一組可擴充套件的工具,通過 特定的語法對從簡單到複雜的交付流水線 「作為**」 進行建模。
對jenkins 流水線的定義被寫在乙個文字檔案中 (成為jenkinsfile
),該檔案可以被提交到專案的源**的控制倉庫。_這是"流水線即**"的基礎; 將cd 流水線作為應用程式的一部分,像其他**一樣進行版本化和審查。 建立jenkinsfile
並提交它到源**控制中提供了一些即時的好處。
定義流水線的語法, 無論是在 web ui 還是在jenkinsfile
中都是相同的, 通常認為在jenkinsfile
中定義並檢查源**控制是最佳實踐。
jenkinsfile
能使用兩種語法進行編寫 - 宣告式和指令碼化。
宣告式和指令碼化的流水線從根本上是不同的。 宣告式流水線的是 jenkins 流水線更近的特性:
流水線流水線定義乙個cd流水線模型,它的**定義了整個構建過程,包括構建、測試和交付應用程式階段。pipeline
塊是宣告式流水線的關鍵部分。
節點節點是乙個機器 ,它是jenkins環境的一部分並且能夠執行流水線。node
塊是 指令碼化流水線語法的關鍵部分。
階段stage
塊定義了在整個流水線的執行任務的標識,展示jenkins流水線目前的 狀態/進展。
步驟乙個單一的任務, a step 告訴jenkins 在特定的時間點要做_what_ (或過程中的 「step」)。
jenkinsfile (declarative pipeline)
pipeline
} stage(
'test')}
stage(
'deploy')}
}}
1、在任何可用的**上,執行流水線或它的任何階段。
2、定義 「build」 階段。
3、執行與 「build」 階段相關的步驟。
4、 定義"test" 階段。
5、 執行與"test" 階段相關的步驟。
6、 定義 「deploy」 階段。
7、執行與 「deploy」 階段相關的步驟。
jenkinsfile (scripted pipeline)
node
stage(
'test'
) stage(
'deploy'
)}
1、在任何可用的**上,執行流水線或它的任何階段。
2、定義 「build」 階段。stage
塊 在指令碼化流水線語法中是可選的。 然而, 在指令碼化流水線中實現stage
塊 ,可以清楚的顯示jenkins ui中的每個stage
的任務子集。
3、執行與 「build」 階段相關的步驟。
4、 定義"test" 階段。
5、 執行與"test" 階段相關的步驟。
6、 定義 「deploy」 階段。
7、執行與 「deploy」 階段相關的步驟。
jenkinsfile (declarative pipeline)
pipeline
} stage(
'test')}
stage(
'deploy')}
}}
1、pipeline
是宣告式流水線的一種特定語法,他定義了包含執行整個流水線的所有內容和指令的 「block」 。
2、agent
是宣告式流水線的一種特定語法,它指示 jenkins 為整個流水線分配乙個執行器 (在節點上)和工作區。
3、stage
是乙個描述 stage of this pipeline的語法塊。在 pipeline syntax 頁面閱讀更多有關宣告式流水線語法的stage
塊的資訊。如 above所述, 在指令碼化流水線語法中,stage
塊是可選的。
4、steps
是宣告式流水線的一種特定語法,它描述了在這個stage
中要執行的步驟。
5、sh
是乙個執行給定的shell命令的流水線 step (由 pipeline: nodes and processes plugin提供) 。
6、junit
是另乙個聚合測試報告的流水線 step (由 junit plugin提供)。
7、node
是指令碼化流水線的一種特定語法,它指示 jenkins 在任何可用的**/節點上執行流水線 (和包含在其中的任何階段)這實際上等效於 宣告式流水線特定語法的agent
。
官方文件:
流水線介紹:book/pipeline/
流水線語法:book/pipeline/syntax/
流水線入門:book/pipeline/getting-started/
Jenkins流水線執行失敗
本人用jenkins ansible搭建了乙個流水線發包流程,結果發現一直卡在pipeline中的某一步發布不成功。1 開啟jenkins控制台檢視日誌 發現一直卡在了 task gathering facts 這一步 2 查詢資料得知這是ansible用setup模組預設自動執行的乙個task,作...
jenkins流水線pipeline指令碼例項
傳送郵件 import hudson.model.println env.job name println env.build number pipeline body something is wrong with 傳送郵件svn日誌內容 pipeline stage 輸出日誌 stage 傳送郵...
Jenkins 流水線pineline相關問題
需要歸檔的文件需放在當前job的workplace下,且路徑是相對路徑。歸檔絕對路徑的日誌失敗問題暫未找到解決辦法 1 建立乙個目錄 在pine中建立的目錄,預設的當前路徑是 jenkins workplace your job name 2 將需要的日誌文件等copy到該目錄下 3 對該目錄進行歸...