柚子快報(bào)邀請(qǐng)碼778899分享:運(yùn)維 Jenkins 構(gòu)建項(xiàng)目
柚子快報(bào)邀請(qǐng)碼778899分享:運(yùn)維 Jenkins 構(gòu)建項(xiàng)目
Jenkins 構(gòu)建項(xiàng)目
使用 Jenkins 持續(xù)集成和持續(xù)部署工具來(lái)自動(dòng)化項(xiàng)目的構(gòu)建、測(cè)試和部署過(guò)程。Jenkins 能夠從版本控制系統(tǒng)(如 Git)獲取項(xiàng)目代碼,然后按照預(yù)先配置的步驟執(zhí)行一系列操作。
什么是持續(xù)集成?
持續(xù)集成(Continuous integration,簡(jiǎn)稱CI)指的是,頻繁的(一天多次)將代碼集成到主干。 持續(xù)集成的目的:就是讓產(chǎn)品可以快速迭代,同時(shí)還能保持高質(zhì)量。 它的核心措施是,代碼集成到主干之前,必須經(jīng)過(guò)自動(dòng)化測(cè)試,只要有一個(gè)測(cè)試用例失敗,就不能集成。
Jenkins 構(gòu)建項(xiàng)目的一般步驟:
配置源代碼管理:連接到項(xiàng)目所使用的版本控制系統(tǒng),如指定 Git 倉(cāng)庫(kù)的 URL 和認(rèn)證信息。 構(gòu)建觸發(fā)器設(shè)置:可以基于時(shí)間間隔、代碼提交、其他事件等條件來(lái)觸發(fā)構(gòu)建。 構(gòu)建環(huán)境配置:例如設(shè)置 JDK 版本、環(huán)境變量等。 構(gòu)建步驟定義:這可能包括編譯代碼、運(yùn)行單元測(cè)試、執(zhí)行代碼靜態(tài)分析等。 部署步驟:將構(gòu)建成功的產(chǎn)物部署到目標(biāo)環(huán)境,如服務(wù)器、容器等。
Jenkins構(gòu)建的項(xiàng)目類型介紹
Jenkins中自動(dòng)構(gòu)建項(xiàng)目的類型有很多,常用的有以下三種:
自由風(fēng)格軟件項(xiàng)目(FreeStyle Project)Maven項(xiàng)目(Maven Project)流水線項(xiàng)目(Pipeline Project)
每種類型的構(gòu)建都可以完成一樣的構(gòu)建過(guò)程與結(jié)果,只是在操作方式、靈活度等方面有所區(qū)別,在實(shí)際開(kāi)發(fā)中根據(jù)項(xiàng)目需求來(lái)選擇(PS:常用流水線類型,靈活度非常高)
Jenkins常用構(gòu)建觸發(fā)器
其他工程觸發(fā)后構(gòu)建:當(dāng)前項(xiàng)目的構(gòu)建行為需要前面一個(gè)項(xiàng)目構(gòu)建完成后的觸發(fā)定時(shí)構(gòu)建:* * * * *?定時(shí)字符串從左往右分別為:分 時(shí) 日 月 周輪詢SCM:定時(shí)掃描本地倉(cāng)庫(kù)的代碼是否有變更,如果代碼有變更就觸發(fā)項(xiàng)目構(gòu)建。該方式Jenkins會(huì)定時(shí)掃描本地整個(gè)項(xiàng)目的代碼,增大系統(tǒng)的開(kāi)銷,不建議使用觸發(fā)遠(yuǎn)程構(gòu)建:通過(guò)URL地址觸發(fā)項(xiàng)目構(gòu)建
# 一些定時(shí)表達(dá)式的例子 # H代表一個(gè)參數(shù),意思是變化的,可以理解為一個(gè)起點(diǎn) # 0代表整點(diǎn)
# 每30分鐘構(gòu)建一次:H代表形參 H/30 * * * * 10:02 10:32
# 2個(gè)小時(shí)構(gòu)建一次 H H/2 * * *
# 每天的8點(diǎn),12點(diǎn),22點(diǎn),一天構(gòu)建3次: (多個(gè)時(shí)間點(diǎn)中間用逗號(hào)隔開(kāi))? 0 8,12,22 * * *
# 每天中午12點(diǎn)定時(shí)構(gòu)建一次 H 12 * * *
# 每天下午18點(diǎn)定時(shí)構(gòu)建一次 H 18 * * *
# 在每個(gè)小時(shí)的前半個(gè)小時(shí)內(nèi)的每10分鐘 H(0-29)/10 * * *
# 每?jī)尚r(shí)一次,每個(gè)工作日上午9點(diǎn)到下午5點(diǎn)(也許是上午10:38,下午12:38,下午2:38,下午4:38) H H(9-16)/2 * * 1-5 ?
Jenkins憑證管理
憑證用來(lái)存儲(chǔ)需要密文保護(hù)的數(shù)據(jù)庫(kù)密碼、Gitlab密碼信息、Docker私有倉(cāng)庫(kù)密碼登,以便Jenkins可以和這些第三方的應(yīng)用進(jìn)行交互。配置源代碼管理時(shí)拉取代碼就需要配置憑證信息。
1、安裝Credentials Binding插件 要在Jenkins使用憑證管理功能,需要安裝Credentials Binding插件
2、創(chuàng)建全局憑據(jù)
可以添加的憑據(jù)有五種:
Username with password:存儲(chǔ)以用戶名和密碼登陸的憑據(jù),如 GitlabSSH Username with private key:SSH免密登錄Secret file:密碼文件,使用時(shí)Jenkins會(huì)將文件復(fù)制到一個(gè)臨時(shí)目錄中,再將文件路徑設(shè)置到一個(gè)變量中,等構(gòu)建結(jié)束后,所復(fù)制的Secret file就會(huì)被刪除Secret text:需要保存的一個(gè)加密的文本串,如釘釘機(jī)器人或Github的api token或者集成Sonar代碼審查Certificate:通過(guò)上傳證書(shū)文件的方式
1、用戶密碼類型憑據(jù)
系統(tǒng)管理 --> 憑據(jù) --> 系統(tǒng) --> 全局 --> 添加憑據(jù)
2、SSH密鑰類型憑證
需要配置密鑰
# 在jenkins服務(wù)器上使用root用戶生成公鑰和私鑰ssh-keygenssh-keygen -t rsa
# 在/root/.ssh/目錄保存了公鑰和使用 cd ~/.ssh/
[root@jenkins .ssh]# ls id_rsa ?id_rsa.pub# id_rsa.pub:公鑰 # id_rsa:私鑰 # 把生成的公鑰放在Gitlab中,使用root用戶登錄Gitlab
# 查看公鑰 [root@jenkins .ssh]# cat id_rsa.pub
添加新的憑證,username寫(xiě)的root,因?yàn)槲覀兪鞘褂胷oot用戶生成的秘鑰
————————————————————————————————— ? ? ? ? ? ? ? ? ? ? ? ?? 參考文檔鏈接:https://blog.csdn.net/sixeleven611/article/details/119590705
柚子快報(bào)邀請(qǐng)碼778899分享:運(yùn)維 Jenkins 構(gòu)建項(xiàng)目
相關(guān)鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。