目錄
一、持續內建(CI)
1.1 流程
1.2 持續內建的組成要素
1.3 持續內建的好處
二、Jenkins介紹
2.1 Jenkins的特征
2.2 持續內建流程具體說明
2.3 搭建簡易jenkins服務
2.3.1 伺服器準備
2.3.2 Gitlab代碼托管伺服器安裝
1)關閉防火牆和安全功能
2)安裝依賴包
3)啟動ssh服務并設定為開機啟動
4)設定postfix開機自啟,讓postfix支援gitlab發信功能
5)下載下傳gitlab包并且安裝
6)修改gitlab配置
7)重載配置及啟動gitlab
8)浏覽器通路測試

1.送出:流程的第一步,是開發者向代碼倉庫送出代碼。所有後面的步驟都始于本地代碼的一次送出(commit)
2.測試(第一輪):代碼倉庫對commit操作配置了鈎子(hook),隻要送出代碼或者合并進主幹,就會跑自動化測試
3.建構:通過第一輪測試,代碼就可以合并進主幹,就算可以傳遞了。傳遞後,就先進行建構(build),再進入第二輪測試。所謂建構,指的是将源碼轉換為可以運作的實際代碼,比如安裝依賴,配置各種資源(樣式表、JS腳本、圖檔)等等
4.測試(第二輪):建構完成,就要進行第二輪測試。如果第一輪已經涵蓋了所有測試内容,第二輪可以省略,當然,這時建構步驟也要移到第一輪測試前面
5.部署:過了第二輪測試,目前代碼就是一個可以直接部署的版本((artifact)。将這個版本的所有檔案打包 ( tarfilename.tar * )存檔,發到生産伺服器
6.復原:一旦目前版本發生問題,就要復原到上一個版本的建構結果。最簡單的做法就是修改一下符号連結,指向上一個版本的目錄
1.一個自動建構過程,從檢出代碼、編譯建構、運作測試、結果記錄、測試統計等都是自動完成的,無需人工幹預
2.一個代碼存儲庫,即需要版本控制軟體來保障代碼的可維護性,同時作為建構過程的素材庫,一般使用SVN或Git
3.一個持續內建伺服器,Jenkins 就是一個配置簡單和使用友善的持續內建伺服器
1.降低風險,由于持續內建不斷去建構,編譯和測試,可以很早期發現問題,是以修複的代價就少
2.對系統健康持續檢查,減少釋出風險帶來的問題
3.減少重複性工作
4.持續部署,提供可部署單元包
5.持續傳遞可供使用的版本
6.增強團隊信心
1.開源的Java語言開發持續內建工具,支援持續內建,持續部署
2.易于安裝部署配置:可通過yum安裝,或下載下傳war包以及通過docker容器等快速實作安裝部署,可友善web界面配置管理
3.消息通知及測試報告:內建RSS/E-mail通過RSs釋出建構結果或當建構完成時通過e-mail通知,生成JUnit/TestNG測試報告
4.分布式建構:支援Jenkins能夠讓多台計算機一起建構/測試
5.檔案識别: Jenkins能夠跟蹤哪次建構生成哪些jar,哪次建構使用哪個版本的jar等
6.豐富的插件支援:支援擴充插件,你可以開發适合自己團隊使用的工具,如git,svn,maven、docker等
1.首先,開發人員每天進行代碼送出,送出到Git倉庫
2.然後,Jenkins作為持續內建工具,使用Git工具到Git倉庫拉取代碼到內建伺服器,再配合JDK,Maven等軟體完成代碼編譯,代碼測試與審查,測試,打包等工作,在這個過程中每一步出錯,都重新再執行一次整個流程
3.最後,Jenkins把生成的jar或war包分發到測試伺服器或者生産伺服器,測試人員或使用者就可以通路應用
名稱
ip
軟體
代碼托管伺服器
192.168.80.16
Gitlab-12.4.2
持續內建伺服器
192.168.80.15
Jenkins-2.190.3,JDK1.8,Maven3.6.2,Git,SonarQube
應用測試伺服器
192.168.80.14
JDK1.8,Tomcat8.5
1.官網: https://about.gitlab.com/
2.GitLab是一個用于倉庫管理系統的開源項目,使用Git作為代碼管理工具,并在此基礎上搭建起來的web服務
3.GitLab和GitHub一樣屬于第三方基于Git開發的作品,免費且開源(基于MIT協定),與Github類似,可以注冊使用者,任意送出你的代碼,添加SSHKey等等。不同的是,GitLab是可以部署到自己的伺服器上,資料庫等一切資訊都掌握在自己手上,适合團隊内部協作開發