Jenkins入門介紹

一、什么是Jenkins?

??Jenkins是一個開源軟件項目,旨在提供一個開放易用的軟件平臺,使軟件的持續(xù)集成變成可能。它是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復的工作,功能包括:

持續(xù)的軟件版本發(fā)布/測試項目。
監(jiān)控外部調(diào)用執(zhí)行的工作


二、什么是持續(xù)集成(CI)?

??持續(xù)集成 是一個開發(fā)的實踐,需要開發(fā)人員定期集成代碼到共享存儲庫。持續(xù)集成強調(diào)開發(fā)人員提交了新代碼之后,立刻進行構(gòu)建、(單元)測試。根據(jù)測試結(jié)果,我們可以確定新代碼和原有代碼能否正確地集成在一起。

??持續(xù)交付(CD) 是在持續(xù)集成的基礎上,將集成后的代碼部署到更貼近真實運行環(huán)境中。比如,我們完成單元測試后,可以把代碼部署到模擬環(huán)境中進行更多的測試。如果代碼沒有問題,可以繼續(xù)手動部署到生產(chǎn)環(huán)境。


三、Jenkins特性

  • 易于安裝,只需要執(zhí)行Java -jar jenkins.war,或者部署到servlet容器中,例如tomcat的。不需要數(shù)據(jù)的支持;

  • 易于配置,所有的配置都是通過其提供的web界面實現(xiàn),且配置頁面支持配置項的錯誤檢查和很好的在線幫助;

  • 集成RSS/EMail/IM同通過RSS發(fā)布構(gòu)建結(jié)果或當構(gòu)建完成時通過e-mail通知;

  • 生成Junit/TestNG測試報告,能夠很好地顯示各種測試的報告,且可以生成失敗的趨向圖;

  • 分布式構(gòu)建支持Jenkins能夠讓多臺計算機一起構(gòu)建/測試;

  • 文件標識,Jenkins可以標識build(構(gòu)建)產(chǎn)生的文件,例如jars

  • 插件支持:Jenkins可以通過第三方的插件來擴展。

  • 可讀的永久的鏈接生成,jenkins對于大部分pages都生成清楚的可讀的永久的鏈接。

  • 跨平臺,支持幾乎所有的平臺,例如Windows,Ubuntu/Debian,Red Hat/CentOS,Mac等。


四、Jenkins能幫我們做什么

  • 軟件構(gòu)建自動化: 配置完成后,CI系統(tǒng)會依照預先制定的時間表,或者針對某一特定事件,對目標軟件進行構(gòu)建。

  • 構(gòu)建可持續(xù)的自動化檢查:CI 系統(tǒng)能持續(xù)地獲取新增或修改后簽入的源代碼,也就是說,當軟件開發(fā)團隊需要周期性的檢查新增或修改后的代碼時,CI 系統(tǒng)會不斷確認這些新代碼是否破壞了原有軟件的成功構(gòu)建。這減少了開發(fā)者們在檢查彼此相互依存的代碼中變化情況需要花費的時間和精力。 l

  • 構(gòu)建可持續(xù)的自動化測試:構(gòu)建檢查的擴展部分,構(gòu)建后執(zhí)行預先制定的一套測試規(guī)則,完成后觸發(fā)通知(Email,RSS 等等)給相關的當事人。

  • 生成后后續(xù)過程的自動化 :當自動化檢查和測試成功完成,軟件構(gòu)建的周期中可能也需要一些額外的任務,諸如生成文檔、打包軟件、部署構(gòu)件到一個運行環(huán)境或者軟件倉庫。這樣,構(gòu)件才能更迅速地提供給用戶使用。


五、持續(xù)集成(CI)系統(tǒng)的基本結(jié)構(gòu)

??部署一個 CI 系統(tǒng)需要的最低要求是,一個可獲取的源代碼的倉庫,一個包含構(gòu)建腳本的項目。

image

該系統(tǒng)的各個組成部分是按如下順序來發(fā)揮作用的:

  1. 開發(fā)者檢入代碼到源代碼倉庫。

  2. CI 系統(tǒng)會為每一個項目創(chuàng)建了一個單獨的工作區(qū)。當預設或請求一次新的構(gòu)建時,它將把源代碼倉庫的源碼存放到對應的工作區(qū)。

  3. CI 系統(tǒng)會在對應的工作區(qū)內(nèi)執(zhí)行構(gòu)建過程。

  4. (配置如果存在)構(gòu)建完成后,CI 系統(tǒng)會在一個新的構(gòu)件中執(zhí)行定義的一套測試。完成后觸發(fā)通知(Email,RSS 等等)給相關的當事人。

  5. (配置如果存在)如果構(gòu)建成功,這個構(gòu)件會被打包并轉(zhuǎn)移到一個部署目標(如應用服務器)或存儲為軟件倉庫中的一個新版本。軟件倉庫可以是 CI 系統(tǒng)的一部分,也可以是一個外部的倉庫,諸如一個文件服務器或者像 Java.net、 SourceForge 之類的網(wǎng)站。

  6. CI 系統(tǒng)通常會根據(jù)請求發(fā)起相應的操作,諸如即時構(gòu)建、生成報告,或者檢索一些構(gòu)建好的構(gòu)件。


六、優(yōu)點

  • Jenkins 一切配置都可以在 web 界面上完成。有些配置如 MAVEN_HOME Email,只需要配置一次,所有的項目就都能用。當然也可以通過修改 XML 進行配置。

  • 支持 Maven 的模塊(Module),JenkinsMaven 做了優(yōu)化,因此它能自動識別 Module,每個 Module 可以配置成一個job。相當靈活。

  • 測試報告聚合,所有模塊的測試報告都被聚合在一起,結(jié)果一目了然,使用其他 CI,這幾乎是件不可能完成的任務。

  • 構(gòu)件指紋(artifact fingerprint),每次build的結(jié)果構(gòu)件都被很好的自動管理,無需任何配置就可以方便的瀏覽下載。


七、Jenkins安裝描述

下載 Jenkins.
打開終端進入到下載目錄.
運行命令 java -jar jenkins.war --httpPort=8080.
打開瀏覽器進入鏈接 http://localhost:8080.
按照說明完成安裝.
安裝完成后,開始將Jenkins運行并創(chuàng)建Pipeline。

??Jenkins Pipeline(或簡稱為 "Pipeline")是一套插件,將持續(xù)交付的實現(xiàn)和實施集成到 Jenkins 中。
??Pipeline提供了一組可擴展的工具,用于將“復制代碼”作為代碼進行建模。
??Jenkinsfile 是一個包含Jenkins Pipeline定義的文本文件,并被檢入源代碼控制。這是“Pipeline代碼”的基礎; 處理連續(xù)輸送Pipeline的一部分應用程序,以像其他代碼一樣進行版本檢查。創(chuàng)建Jenkinsfile提供了一些直接的好處:

自動創(chuàng)建所有分支和拉請求的Pipeline
Pipeline上的代碼審查/迭代
Pipeline的審計跟蹤
Pipeline的唯一真實來源 ,可以由項目的多個成員查看和編輯。


八、環(huán)境準備

JDK:1.8
Centos:7.3
maven 3.5

1、安裝jdk請移步這里

2、安裝maven

通過命令下載
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz

或者通過百度云下載
鏈接:https://pan.baidu.com/s/1zPM__BgDLk35khLal3_n5Q
提取碼:62fy

//解壓
tar vxf apache-maven-3.5.0-bin.tar.gz
//移動
mv apache-maven-3.5.0 /usr/local/apache-maven-3.5.0
//修改環(huán)境變量
在/etc/profile中添加以下幾行
MAVEN_HOME=/usr/local/apache-maven-3.5.0
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

執(zhí)行source /etc/profile使環(huán)境變量生效。

?最后運行mvn -v驗證maven是否安裝成功


image

3、配置防護墻

#關閉防護墻
#centos7
systemctl stop firewalld.service

#以下為:centOS 6.5關閉防火墻步驟
#關閉命令:  
service iptables stop
#永久關閉防火墻:
chkconfig iptables off
#兩個命令同時運行,運行完成后查看防火墻關閉狀態(tài)
service iptables status

九、小結(jié)

??本篇文章我們簡單了介紹了Jenkins,相信我們對此有了初步了解,下一篇繼續(xù)探討Jenkins部署SpringBoot。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容