-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
JENKINS 2.X實踐指南 版權信息
- ISBN:9787121360503
- 條形碼:9787121360503 ; 978-7-121-36050-3
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
JENKINS 2.X實踐指南 本書特色
本書首先介紹筆者對軟件工程生產力的獨到見解。其次通過一個Hello world帶領初學者入門Jenkins pipeline。接著詳細介紹Jenkins pipeline的語法,以及在Jenkins pipeline中如何實現持續集成、持續交付中各個階段,包括構建、測試、制品管理、部署等;在發現現有pipeline的步驟不能滿足需求時,擴展Jenkins pipeline多種方式。本書第17章介紹了Jenkins如何整合多個第三方系統,以實現ChatOps及自動化運維。為避免讀者“不知從哪下手”的情況,本書通過一個簡單的案例介紹從無到有的設計pipeline。
JENKINS 2.X實踐指南 內容簡介
本書首先介紹筆者對軟件工程生產力的獨到見解。其次通過一個Hello world帶領初學者入門Jenkins pipeline。接著詳細介紹Jenkins pipeline的語法,以及在Jenkins pipeline中如何實現持續集成、持續交付中各個階段,包括構建、測試、制品管理、部署等;在發現現有pipeline的步驟不能滿足需求時,擴展Jenkins pipeline多種方式。本書7章介紹了Jenkins如何整合多個第三方系統,以實現ChatOps及自動化運維。為避免讀者“不知從哪下手”的情況,本書通過一個簡單的案例介紹從無到有的設計pipeline。
JENKINS 2.X實踐指南 目錄
1 關于軟件工程生產力 1
1.1 從另一個角度看“提高軟件工程生產力” . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 從勞動力要素考慮提高軟件工程生產力 . . . . . . . . . . . . . . . . . . . . 2
1.1.2 從勞動對象要素考慮提高軟件工程生產力 . . . . . . . . . . . . . . . . . . . 2
1.1.3 從生產工具要素考慮提高軟件工程生產力 . . . . . . . . . . . . . . . . . . . 3
1.1.4 生產力三要素的意義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Jenkins 介紹 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Jenkins 與 DevOps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 本章小結 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 pipeline 入門 6
2.1 pipeline 是什么 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Jenkinsfile 又是什么 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 pipeline 語法的選擇 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 創建**個 pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.5 從版本控制庫拉取 pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.6 使用 Maven 構建 Java 應用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.7 本章小結 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3 pipeline 語法講解 16
3.1 必要的 Groovy 知識 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2 pipeline 的組成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.1 pipeline *簡結構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.2 步驟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3 post 部分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4 pipeline 支持的指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5 配置 pipeline 本身 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.6 在聲明式 pipeline 中使用腳本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.7 pipeline 內置基礎步驟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.7.1 文件目錄相關步驟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.7.2 制品相關步驟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.7.3 命令相關步驟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.7.4 其他步驟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.7.5 小貼士 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.8 本章小結 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4 環境變量與構建工具 37
4.1 環境變量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1.1 Jenkins 內置變量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1.2 自定義 pipeline 環境變量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.1.3 自定義全局環境變量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2 構建工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.1 構建工具的選擇 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.2 tools 指令介紹 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2.3 JDK 環境搭建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2.4 Maven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2.5 Go 語言環境搭建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2.6 Python 環境搭建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3 利用環境變量支持更多的構建工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.4 利用 tools 作用域實現多版本編譯 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.5 本章小結 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5 代碼質量 50
5.1 靜態代碼分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.1.1 代碼規范檢查 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.1.2 使用 PMD 進行代碼規范檢查 . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.1.3 各靜態代碼分析器之間的區別 . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2 單元測試 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2.1 JUnit 單元測試報告 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2.2 JaCoCo 實現代碼覆蓋率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2.3 代碼覆蓋率越高,軟件的質量就越高嗎 . . . . . . . . . . . . . . . . . . . . 58
5.3 性能測試 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.3.1 準備性能測試環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.3.2 運行 JMeter 測試 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.4 SonarQube:持續代碼質量檢查 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.4.1 Maven 與 SonarQube 集成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.4.2 Jenkins 與 SonarQube 集成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.4.3 使用 SonarQube Scanner 實現代碼掃描 . . . . . . . . . . . . . . . . . . . . . 67
5.4.4 SonarQube 集成 p3c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.4.5 將分析報告推送到 GitLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.5 Allure 測試報告:更美觀的測試報告 . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.5.1 Allure 測試報告介紹 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.5.2 集成 Allure、Maven、Jenkins . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.6 當我們談質量時,談的是什么 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.7 本章小結 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6 觸發 pipeline 執行 77
6.1 什么是觸發條件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.2 時間觸發 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.2.1 定時執行:cron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.2.2 輪詢代碼倉庫:pollSCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.3 事件觸發 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.3.1 由上游任務觸發:upstream . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.3.2 GitLab 通知觸發 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.3.3 在 pipeline 中實現 GitLab trigger . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.4 將構建狀態信息推送到 GitLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.5 使用 Generic Webhook Trigger 插件實現觸發 . . . . . . . . . . . . . . . . . . . . . . 87
6.5.1 從 Webhook 請求中提取參數值 . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.5.2 觸發具體某個 Jenkins 項目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.5.3 根據請求參數值判斷是否觸發 Jenkins 項目執行 . . . . . . . . . . . . . . . . 91
6.5.4 控制打印內容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.5.5 控制響應 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.6 本章小結 . . . . .
JENKINS 2.X實踐指南 作者簡介
程序員,https://showme.codes 博主。曾任開源中國產品經理。目前就職于美的公司,參與公司IoT系統、DevOps產品的設計與開發,幫助團隊提高軟件生產力。
- >
羅庸西南聯大授課錄
- >
月亮與六便士
- >
中國人在烏蘇里邊疆區:歷史與人類學概述
- >
我從未如此眷戀人間
- >
苦雨齋序跋文-周作人自編集
- >
自卑與超越
- >
我與地壇
- >
隨園食單