Jenkins是一個(gè)持續(xù)集成工具梳虽,本文中將介紹它的基本使用方法
1族壳、centos上安裝Jenkins
參考:https://www.cnblogs.com/loveyouyou616/p/8714544.html
2寒随、配置git
首先登錄Jenkins新建項(xiàng)目
輸入項(xiàng)目名稱肴楷,一般選擇項(xiàng)目類型為自由風(fēng)格型
點(diǎn)擊確認(rèn)后可以看到如下頁(yè)面
源碼管理就是用來(lái)下載代碼
上圖中有兩個(gè)常見(jiàn)的代碼管理方式龄糊,一個(gè)是git欲主,一個(gè)是SVN。都是常見(jiàn)的代碼版本管理工具草讶。因?yàn)槲覀兇a是放在GitHub上面洽糟,所以我們選擇配置git來(lái)進(jìn)行源碼管理。
進(jìn)入GitHub復(fù)制倉(cāng)庫(kù)地址
配置倉(cāng)庫(kù)URL
【注】Jenkins會(huì)自動(dòng)檢查URL連接是否正常
下面的Credentials即證書(shū)堕战,用來(lái)設(shè)置登錄憑證坤溃,可以是用戶名密碼、配置的密鑰等
Branch Specifier (blank for 'any')默認(rèn)是主分支嘱丢,如果構(gòu)建其他分支需自行添加
Additional Behaviours:添加一些常用配置信息
重點(diǎn)介紹一下用來(lái)設(shè)置git下載代碼超時(shí)的配置項(xiàng)薪介,我們第一次構(gòu)建的時(shí)候由于代碼庫(kù)代碼較多所以會(huì)超時(shí)報(bào)失敗,默認(rèn)超時(shí)時(shí)間是10min越驻,需要配置下面的超時(shí)時(shí)間
配置好之后保存退出
點(diǎn)立即構(gòu)建觸發(fā)汁政,此時(shí)即開(kāi)始下載我們配置的代碼
查看構(gòu)建日志
日志詳解
第一次構(gòu)建會(huì)自動(dòng)創(chuàng)建本地倉(cāng)庫(kù)目錄道偷,用來(lái)存放拉取的遠(yuǎn)程代碼
git init /var/lib/jenkins/workspace/test_download_code_from_git # timeout=10? 本地倉(cāng)庫(kù)初始化
git --version 查詢git版本
git fetch --tags --progresshttps://github.com/wuwang1234/JFY.git+refs/heads/*:refs/remotes/origin/會(huì)抓取遠(yuǎn)程庫(kù)所有代碼。fetch命令要求refspec來(lái)獲得抓取的范圍烂完。因?yàn)槲覀儧](méi)有輸入试疙,那么git使用.git/config文件中的remote.<rep. alias>.fetch屬性的值,一般是+refs/heads/:refs/remotes/origin/抠蚣。那么這個(gè)ref表示抓取遠(yuǎn)程庫(kù)上所有的以ref/heads/開(kāi)頭的引用祝旷,映射到本地的refs/remotes/origin開(kāi)頭的引用。以其中的master為例refs/heads/master:refs/remotes/origin/master嘶窄,那么抓取的時(shí)候會(huì)把遠(yuǎn)程庫(kù)上的refs/heads/master(記住遠(yuǎn)程庫(kù)上的.git庫(kù)同樣和本地都有refs/heads/master文件)對(duì)應(yīng)的SHA1值同步到本地倉(cāng)庫(kù)的refs/remotes/origin/master的文件中怀跛,并把其中差異的git對(duì)象(本地是a/b/c提交,而遠(yuǎn)程是a/b/c/d/e提交柄冲,那么差異的提交就是d/e和對(duì)應(yīng)的git對(duì)象)從遠(yuǎn)程庫(kù)下載到本地的對(duì)象庫(kù)(.git/objects目錄)吻谋。如果有多個(gè)分支(maste、develop现横、feature1)會(huì)循環(huán)執(zhí)行同步SHA1和下載git對(duì)象內(nèi)容
第二次構(gòu)建
git rev-parse --is-inside-work-tree 查看當(dāng)前目錄是不是一個(gè)git倉(cāng)庫(kù)
git config remote.origin.urlhttps://github.com/wuwang1234/JFY.git# timeout=10 配置遠(yuǎn)程庫(kù)的URL
git rev-parse用于查看參數(shù)漓拾,返回結(jié)果通常可以直接使用不需額外處理
git config用于配置戒祠、查看參數(shù)骇两,繞過(guò)了git remote命令可能存在的報(bào)錯(cuò)
git fetch用于拉取分支,并不改變當(dāng)前工作區(qū)內(nèi)容姜盈,相比git pull更加精確有效
git checkout用于檢出提交低千,但對(duì)于緩存區(qū)文件(也許上次集成生成的問(wèn)題)以及.gitignore中配置的文件不做處理
git clean用于清理工作區(qū),僅留下指定提交下面關(guān)聯(lián)的文件
git merge --no-edit --strategy=octopus用于合并多個(gè)分支馏颂,--no-edit參數(shù)使得CommitMessage不需要編輯示血,octopus是默認(rèn)的Merge策略,在遇到復(fù)雜合并操作救拉,需要人工解決時(shí)难审,拒絕合并
git ls-remote用于查看遠(yuǎn)程代碼倉(cāng)庫(kù)上主干分支的位置
git rev-list用于查看某次提交之前的歷史
git merge --no-ff?用于合并代碼。根據(jù)健康的Git工作流亿絮,所有的開(kāi)發(fā)提交合并至主干時(shí)都是fast-forward過(guò)程剔宪。--no-ff參數(shù)能使fast-forward也產(chǎn)生一個(gè)新的Merge Commit(無(wú)此參數(shù)則不會(huì)),目的是保持開(kāi)發(fā)分支的開(kāi)發(fā)記錄壹无,保持整個(gè)代碼開(kāi)發(fā)歷史的完整性
git tag用于新建Tag,保存線上穩(wěn)定版本
git push origin HEAD:refs/heads/master --tags用于提交Merge后的代碼及Tag感帅。使用origin/master拉取代碼斗锭,并使用HEAD:refs/heads/master方式提交,相比切換至本地master分支再更新失球、合并岖是、提交帮毁,步驟更簡(jiǎn)單,并繞過(guò)本地master分支可能存在的需要處理的變更