[TOC]
## 聲明式pipeline
在聲明式流水線語法中,流水線過程定義在 Pipeline{}中,Pipeline 塊定義了整個流水線中完成的所有工作,比如
**參數說明**:
* agent any:在任何可用的代理上執行流水線或它的任何階段,也就是執行流水線過程的位置,也可以指定到具體的節點
* stage:定義流水線的執行過程(相當于一個階段),比如下文所示的 Build、Test、Deploy, 但是這個名字是根據實際情況進行定義的,并非固定的名字
* steps:執行某階段具體的步驟。
~~~json
//Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Build'
}
}
stage('Test') {
steps {
echo 'Test'
}
}
stage('Deploy') {
steps {
echo 'Deploy'
}
}
}
}
~~~
## 腳本化pipeline
在腳本化流水線語法中,會有一個或多個 Node(節點)塊在整個流水線中執行核心工作
**參數說明**:
* node:在任何可用的代理上執行流水線或它的任何階段,也可以指定到具體的節點
* stage:和聲明式的含義一致,定義流水線的階段。Stage 塊在腳本化流水線語法中是可選的,然而在腳本化流水線中實現 stage 塊,可以清楚地在Jenkins UI界面中顯示每個stage的任務子集。
~~~json
//Jenkinsfile (Scripted Pipeline)
node {
stage('Build') {
echo 'Build'
}
stage('Test') {
echo 'Test'
}
stage('Deploy') {
echo 'Deploy'
}
}
~~~
## 編寫聲明式例子測試
```sh
pipeline {
agent any
// 存放所有任務的合集
stages {
stage('拉取Git代碼') {
steps {
echo '拉取Git代碼'
}
}
stage('檢測代碼質量') {
steps {
echo '檢測代碼質量'
}
}
stage('構建代碼') {
steps {
echo '構建代碼'
}
}
stage('制作自定義鏡像并發布Harbor') {
steps {
echo '制作自定義鏡像并發布Harbor'
}
}
stage('基于Harbor部署工程') {
steps {
echo '基于Harbor部署工程'
}
}
}
}
```
| 配置Grovvy腳本 |
| :----------------------------------------------------------: |
| |
- 查看效果
| 查看效果 |
| :----------------------------------------------------------: |
|  |
**Ps:涉及到特定腳本,Jenkins給予了充足的提示,可以自動生成命令**
| 生成命令位置 |
| :----------------------------------------------------------: |
| |
- DevOps介紹
- 持續集成流程
- git工作流實踐
- 新人準備git環境
- git工作流最佳實踐
- jenkins基礎入門
- jenkins簡介
- jenkins安裝(docker)
- 源碼拉取
- maven構建
- 應用發布
- 結合gitlab版本管理
- jenkins-docker部署
- harbor鏡像發布
- jenkins集成SonarQube
- SonarQube代碼檢測
- 集成SonarQube
- jenkins-pipeline
- 構建pipeline任務
- pipeline基礎結構
- pipeline核心語法
- jenkinsfile構建
- 完整案例
- 整合釘釘發送通知
- 腳本使用憑證信息
- jenkins結合k8s使用
- k8s架構及基礎概念
- k8s操作命令
- jenkins部署k8s
- 附錄(其他未完成)
- jenkins高可用服務搭建
- gitlab-docker環境搭建
- 開發人員安裝git
- JDK與maven
- docker安裝gitlab
- docker安裝
- docker-compose安裝
- harbor安裝
- SonarQube安裝
- 2.暫時沒寫的內容
- 構建結果郵件發送
- 已有項目上傳gitlab