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
分支即可)。
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 executable
為git
命令的路徑,可以通過whereis git
命令得到;“自動安裝”不要勾選。配置后保存。
- 3、新建一個項目(選擇“構(gòu)建一個自由風(fēng)格的軟件項目”即可),進(jìn)入該項目的配置頁面,進(jìn)行一些常規(guī)配置:
- 4、進(jìn)行項目配置中的“源碼管理”配置,配置后保存:
勾選Git
;
輸入遠(yuǎn)程倉庫的 URL,注意這個 URL 是 Clone 操作(git clone
)所用的那個 URL;
憑據(jù),與創(chuàng)建、配置“節(jié)點(diǎn)”時類似,已經(jīng)添加過就直接選擇,沒有的話就添加。添加的話一般常用的就是Username with password
、SSH 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)程倉庫拉取代碼到本地:
上面的圖說明,Git 的配置是成功的。
- 6、編寫一個簡單的用于部署的 Shell 腳本,重新回到項目的配置中,新增“構(gòu)建策略”,選擇“執(zhí)行 Shell”,編寫一個將這個 HTML 文件拷貝至 Tomcat 中的
webapps/jenkins/
目錄下,重命名為jenkins.html
。保存配置:
- 7、先進(jìn)行一次構(gòu)建,一來看看 Shell 腳本是否正常運(yùn)行,二是看看 HTML 頁面的效果,便于與修改后區(qū)分:
- 8、在 Windows 中拉取代碼,編輯 HTML,來模擬開發(fā)場景,修改后提交再提交至遠(yuǎn)程倉庫:
- 9、再次構(gòu)建,構(gòu)建成功后刷新瀏覽器頁面:
綜上,便是一個較為完整的 Jenkins 與 Git 結(jié)合使用。
3、補(bǔ)充
- 上述只是簡單的示例。現(xiàn)實(shí)中,不論是項目復(fù)雜程度、部署的環(huán)境、部署所編寫的腳本等都比示例復(fù)雜的多。希望先通過這樣簡單的示例,了解 Jenkins 可以與 Git 結(jié)合使用,并且對 Jenkins 可以自動拉取遠(yuǎn)程倉庫中的代碼并且實(shí)現(xiàn)部署這種常規(guī)操作不再“懷疑”即可。