9月12日晚21:00 爲大家帶來乾貨分享結合實際工作實戰案例爲大家帶來 Jenkins Pipline 必知必會的一些知識。
主要內容如下:
- Pipline 語法講解
- Pipline 項目實戰-Maven JAVA 項目構建
- Pipline 項目實戰-NodeJS 項目構建
- 分享一個多語言構建的 Pipeline 小栗子
1. Pipline 的組成
Jenkins Pipeline(或簡稱爲“Pipeline”,大寫字母爲“P”)是一套插件,支持在Jenkins中實現和集成連續交付管道
一個持續交付(CD)管道是一直到你的用戶和客戶的過程正從版本控制軟件的自動化表達。對軟件的每次更改(在源代碼管理中提交)都會在發佈的過程中經歷一個複雜的過程。此過程涉及以可靠且可重複的方式構建軟件,以及通過多個測試和部署階段推進構建的軟件(稱爲“構建”)。
Pipeline提供了一組可擴展的工具,用於通過管道域特定語言(DSL)語法 “作爲代碼”對簡單到複雜的傳輸管道進行建模 。
Jenkins管道的定義被寫入一個文本文件(稱爲a Jenkinsfile),該文件 又可以提交給項目的源代碼控制存儲庫。這是“作爲代碼的管道”的基礎; 將 CD 管道視爲應用程序的一部分,以便像任何其他代碼一樣進行版本控制和審查。
2. 爲什麼要使用 pipeline ?
Pipeline 五大特性
代碼: Pipeline 以代碼的形式實現,通常被檢入源代碼控制,使團隊能夠編輯、審查和迭代其 CD 流程。
可持續性:Jenklins 重啓或者中斷後都不會影響 Pipeline Job。
停頓:Pipeline 可以選擇停止並等待任工輸入或批准,然後再繼續 Pipeline 運行。
多功能:Pipeline 支持現實世界的複雜 CD 要求,包括 fork/join 子進程,循環和並行執行工作的能力
可擴展:Pipeline 插件支持其 DSL 的自定義擴展以及與其他插件集成的多個選項。
3. Pipeline 的語法
- Declarative 聲明式
- Scripted pipeline 腳本式
4. Pipline Declarative 格式
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'echo Build'
}
}
stage('Test') {
steps {
sh 'echo Test'
}
}
stage('Deploy') {
steps {
sh 'echo Deploy'
}
}
}
}
pipeline:代表整條流水線,包含整條流水線的邏輯。
- stages 部分:流水線中多個 stage 的容器。stages 部分至少包含一個stage。
- stage 部分:階段,代表流水線的階段。每個階段都必須有名稱。本例中,build 就是此階段的名稱。
- steps 部分:代表階段中的一個或多
5. Scripted Pipeline
Scripted Pipeline 對語法的要求比較寬鬆,頂層可以是 node,也可以是 stage。node 可以嵌套 stage,stage 反過來也可以嵌套 node。典型的腳本式 Pipeline 語法如下:
node { //node可以指定label 例如 node ('label_name') {}
stage("Build") {
sh 'echo Building...'
}
stage("Test"){
sh 'echo Testing...'
}
}
6. Pipline Declarative 參數詳解
7. Pipline 支持的指令
2019.9.12日晚直播,想要聽課和資料的添加Amywechat:17812796384