序 xvii
前言 xix
第1 章 Jenkins 簡介 1
簡介 1
持續集成基礎 1
Jenkins 簡介(née Hudson) 3
從Hudson 到Jenkins——一個簡短的故事 3
應該使用Jenkins 還是Hudson 4
引進持續集成到你的公司 5
階段1——無構建服務器 5
階段2——夜間構建 6
階段3——夜間構建加自動化測試 6
階段4——加入度量指標 6
階段5——更認真地對待測試 6
階段6——自動化驗收測試和自動化部署 7
階段7——持續部署 7
接下來做什麼呢 7
第2 章 邁入Jenkins 的第一步 9
簡介 9
準備環境 9
安裝Java 10
安裝Git 11
創建GitHub 賬號 11
配置SSH 密鑰 11
創建代碼庫分支 12
啓動Jenkins 13
配置工具 17
配置你的Maven 設置 18
配置JDK 19
通知 20
設置Git 20
你的第一個Jenkins 構建作業 21
你的第一個構建作業 26
更多的報告——顯示Javadoc 33
添加代碼覆蓋率和其他度量 34
小結 40
第3 章 安裝Jenkins 41
簡介 41
下載和安裝Jenkins 41
為Jenkins 準備好構建服務器 44
Jenkins 主目錄 45
在Debian 或者Ubuntu 係統上安裝Jenkins 47
在Red Hat、Fedora 或者CentOS 上安裝Jenkins 48
在SUSE 或者OpenSUSE 上安裝Jenkins 49
以單機應用形式運行Jenkins 49
基於Apache 服務器運行Jenkins 53
在應用服務器上運行Jenkins 54
內存方麵的考慮 54
安裝Jenkins 為一個Windows 服務 55
Jenkins 主目錄裏有什麼 59
備份Jenkins 數據 62
升級Jenkins 安裝 63
小結 64
第4 章 配置Jenkins 服務器 65
簡介 65
配置麵闆——Manage Jenkins 界麵 65
配置係統環境 68
配置全局屬性 69
配置JDK 70
配置構建工具 72
Maven 73
Ant 74
Shell 腳本 75
配置版本控製工具 75
配置Subversion 75
配置CVS 75
配置郵件服務器 76
配置代理 77
小結 78
第5 章 設置構建作業 79
簡介 79
Jenkins 構建作業 79
創建自由式構建作業 80
通用選項 81
高級項目選項 82
配置源代碼管理 83
用Subversion 工作 84
使用Git 86
Build Triggers 96
構建作業完成後觸發下一個 97
計劃構建作業 97
輪詢SCM 98
遠程觸發構建 99
手工構建作業 101
構建步驟 101
Maven 構建步驟 102
Ant 構建步驟 103
執行Shell 或Windows 批處理命令 104
在構建中使用Jenkins 環境變量 105
運行Groovy 腳本 108
用其他語言構建項目 110
構建後的操作 110
報告測試結果 110
歸檔構建産物 110
通知 114
構建其他的項目 114
運行新的構建作業 115
使用Maven 構建作業 115
每當SNAPSHOT(快照)依賴被建立時都要進行構建 116
配置Maven 構建 116
構建後期操作 118
部署到企業倉庫管理器 118
部署到商業企業倉庫管理器 122
管理模塊 122
Maven 構建作業中額外的構建步驟 122
用其他語言使用Jenkins 124
用Grails 構建項目 124
用Gradle 構建項目 126
用Visual Studio MSBuild 構建項目 129
用NAnt 構建項目 130
使用Ruby 和Ruby on Rails 構建項目 130
小結 132
第6 章 自動化測試 133
簡介 133
自動化單元和集成測試 134
在Jenkins 中配置測試報告 135
顯示測試結果 137
忽略測試 140
代碼覆蓋率 142
使用Cobertura 測量代碼覆蓋率 143
使用Clover 測量代碼覆蓋率 152
自動化驗收測試 154
JMeter 自動化性能測試 157
請求幫助!我的測試運行得太慢瞭 165
添加更多的硬件 166
運行更少的集成/ 功能測試 166
並行運行測試 167
小結 167
第7 章 Jenkins 安全 169
簡介 169
激活Jenkins 安全 169
Jenkins 安全實例 170
安全域——定義Jenkins 用戶 171
使用Jenkins 內置用戶數據庫 171
使用LDAP 倉庫 174
使用微軟活動目錄 176
使用UNIX 用戶和用戶組 177
Servlet 容器授權 177
使用Atlassian Crowd 178
與其他係統集成 179
授權——誰可以做什麼 181
安全矩陣 181
基於項目的安全 185
基於角色的安全 188
審計——跟蹤用戶行為 190
小結 193
第8 章 通知 195
簡介 195
電子郵件通知 195
更高級的電子郵件通知 197
聲明構建 200
RSS 訂閱 202
構建分發器 202
即時消息 204
用Jabber 進行IM 通知 204
使用IRC 的IM 通知 209
IRC 通知 209
桌麵通知器 212
通過Notifo 通知 213
移動通知 216
短信通知 216
製造噪聲 219
極端反饋設備 221
小結 222
第9 章 代碼質量 225
簡介 225
構建過程中的代碼質量 226
受歡迎的Java 和Groovy 代碼質量分析工具 227
Checkstyle 227
PMD/CPD 230
FindBugs 235
CodeNarc 237
使用Violations 插件報告代碼質量問題 238
與自由風格下的構建作業一起工作 239
使用Maven 構建作業 242
使用Checkstyle、PMD 和FindBugs 報告 244
報告代碼復雜度 247
報告未完成的任務 248
集成Sonar 249
小結 253
第10 章 高級構建 255
簡介 255
參數化構建作業 255
創建一個參數化構建作業 256
為構建適配參數化構建腳本 257
高級參數類型 259
使用Subversion 標簽構建 260
使用Git 標簽構建 261
遠程啓動參數化構建作業 262
參數化構建作業曆史 263
參數化觸發263
多重結構的構建作業 266
搭建多重結構構建 266
配置從節點軸 267
配置JDK 軸 268
自定義軸 268
執行多重結構構建 268
自動生成Maven 構建作業 271
配置作業 271
使用繼承復用作業配置 273
插件支持 275
自由式作業 278
構建協作 278
在Jenkins 中並行構建 279
依賴關係圖 279
連接 280
Locks and Latches 插件 281
構建管道及優化 282
通過M2Release 插件管理Maven 版本發布 283
復製構建産物 286
構建進階 289
匯總測試結果 295
構建管道 296
小結 299
第11 章 分布式構建 301
簡介 301
Jenkins 分布式構建架構 301
Jenkins 主/ 從策略 302
主節點使用SSH 啓動從節點代理 303
使用Java Web Start 手工啓動從代理 307
把Jenkins 從節點安裝為Windows 服務 309
無主節點模式啓動從節點 310
以遠程服務方式啓動Windows 從節點 310
把構建作業與一個或一組從節點關聯 311
節點監控 313
雲計算 314
使用Amazon EC2 314
使用CloudBees DEV@cloud 服務 318
小結 319
第12 章 自動化部署和持續交付 321
簡介 . 321
實現自動化和持續部署 322
部署腳本 322
數據庫更新 322
冒煙測試 325
迴滾更改 326
部署到應用程序服務器上 326
部署一個Java 應用 327
部署像Ruby 和PHP 這樣基於腳本的應用程序 336
小結 339
第13 章 Jenkins 的維護341
簡介 341
監控磁盤空間 341
使用Disk Usage 插件 343
磁盤使用及Jenkins Maven 項目類型 344
監控服務器負載 345
備份配置 346
Jenkins 備份基礎 346
使用備份插件 348
更為輕量的自動備份 350
構建作業歸檔 350
構建遷移 351
小結 355
附錄A 自動化你的單元和集成測試 357
索引 367
· · · · · · (
收起)