12、【Jenkins】【Jenkins 使用】Jenkins 與 Git

1、概述

  • Jenkins 與 Git 的結(jié)合使用,可以理解為是 Jenkins 的一個強(qiáng)大之處。為什么要這么說,簡要說明一下這個工作模式就能理解:
    一個軟件項目,開發(fā)過程中通常都會使用到一些源碼管理工具,來達(dá)到團(tuán)隊協(xié)作的目的。而 Jenkins 所能實(shí)現(xiàn)的功能是,待開發(fā)人員將代碼提交到源碼管理工具中,通過提前設(shè)計好的 Jenkins 構(gòu)建策略等,可以實(shí)現(xiàn)一鍵測試、部署等等。開發(fā)人員所要做的就是提交代碼至倉庫,其余的工作可以交給 Jenkins 完成。

2、具體操作

  • 準(zhǔn)備工作:
    1、部署 Jenkins 的主機(jī)上要安裝 Git,安裝成功后,可以通過whereis命令獲取到 Git 的安裝路徑。
    2、準(zhǔn)備好另外一個服務(wù)器,Jenkins 將通過節(jié)點(diǎn)方式對其實(shí)現(xiàn)遠(yuǎn)程操作。(只使用部署了 Jenkins 這一個服務(wù)器進(jìn)行這個示例也是可行的,即這個服務(wù)器即部署了 Jenkins 也“承擔(dān)”部署軟件項目)
    3、一個遠(yuǎn)程的源碼倉庫。GitHub、GitLab、Gitee 等均可。
    4、上傳一個 HTML 文件到這個遠(yuǎn)程倉庫(上傳至master分支即可)。
一個遠(yuǎn)程的源碼倉庫并上傳一個 HTML 文件

5、在遠(yuǎn)程服務(wù)器中安裝好并開啟 Tomcat,將通過 Jenkins 將這個 HTML 文件部署至遠(yuǎn)程服務(wù)器的 Tomcat 中。

  • 流程:
流程

注意:上述的操作僅是簡單示例,可能會有不合適的地方。

  • 1、通過whereis命令在部署了 Jenkins 的服務(wù)器上獲取到 Git 的安裝路徑。在 Jenkins 主頁(首頁)點(diǎn)擊左側(cè)的“系統(tǒng)管理”,再點(diǎn)擊“全局工具配置”,進(jìn)入“全局工具配置”頁面:
全局工具配置
  • 2、填寫有關(guān) Git 的配置:Name自定義;Path to Git executablegit命令的路徑,可以通過whereis git命令得到;“自動安裝”不要勾選。配置后保存。
配置 Git
  • 3、新建一個項目(選擇“構(gòu)建一個自由風(fēng)格的軟件項目”即可),進(jìn)入該項目的配置頁面,進(jìn)行一些常規(guī)配置:
常規(guī)配置 - 配置構(gòu)建該項目所要使用的節(jié)點(diǎn)
  • 4、進(jìn)行項目配置中的“源碼管理”配置,配置后保存:
源碼管理
源碼管理

勾選Git

輸入遠(yuǎn)程倉庫的 URL,注意這個 URL 是 Clone 操作(git clone)所用的那個 URL;

憑據(jù),與創(chuàng)建、配置“節(jié)點(diǎn)”時類似,已經(jīng)添加過就直接選擇,沒有的話就添加。添加的話一般常用的就是Username with passwordSSH Username with private key這兩種類型。Username with password就是配置你遠(yuǎn)程源碼倉庫的用戶名和密碼,比如 GitHub 的用戶名和密碼。SSH Username with private key就是使用密鑰對,使用的前提是需要將部署了 Jenkins 的服務(wù)器中的密鑰對中的公鑰($User_home_directory/.ssh/······_pub)配置在遠(yuǎn)程源碼倉庫中,然后“憑據(jù)”中配置密鑰對中的私鑰;

指定分支,根據(jù)實(shí)際情況;

Additional Behaviours:有很多選項供選擇,類似于“構(gòu)建策略”,但一般是執(zhí)行在“構(gòu)建策略”之前。這里選擇的是“檢出到子目錄”,作用是從遠(yuǎn)程倉庫拉取代碼到本地,作用類似于git clone命令。所以,需要先在遠(yuǎn)程服務(wù)器上建立一個本地倉庫目錄。

  • 5、保存項目配置,立即構(gòu)建,先測試是否能從遠(yuǎn)程倉庫拉取代碼到本地:
構(gòu)建后控制臺輸出
查看本地源碼倉庫

上面的圖說明,Git 的配置是成功的。

  • 6、編寫一個簡單的用于部署的 Shell 腳本,重新回到項目的配置中,新增“構(gòu)建策略”,選擇“執(zhí)行 Shell”,編寫一個將這個 HTML 文件拷貝至 Tomcat 中的webapps/jenkins/目錄下,重命名為jenkins.html。保存配置:
簡單的部署腳本
  • 7、先進(jìn)行一次構(gòu)建,一來看看 Shell 腳本是否正常運(yùn)行,二是看看 HTML 頁面的效果,便于與修改后區(qū)分:
HTML 頁面效果
  • 8、在 Windows 中拉取代碼,編輯 HTML,來模擬開發(fā)場景,修改后提交再提交至遠(yuǎn)程倉庫:
修改后提交至遠(yuǎn)程倉庫
提交詳情
  • 9、再次構(gòu)建,構(gòu)建成功后刷新瀏覽器頁面:
執(zhí)行構(gòu)建后刷新

綜上,便是一個較為完整的 Jenkins 與 Git 結(jié)合使用。

3、補(bǔ)充

  • 上述只是簡單的示例。現(xiàn)實(shí)中,不論是項目復(fù)雜程度、部署的環(huán)境、部署所編寫的腳本等都比示例復(fù)雜的多。希望先通過這樣簡單的示例,了解 Jenkins 可以與 Git 結(jié)合使用,并且對 Jenkins 可以自動拉取遠(yuǎn)程倉庫中的代碼并且實(shí)現(xiàn)部署這種常規(guī)操作不再“懷疑”即可。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容