一步步部署基于Windows系统的Jenkins持续集成环境
如題:本文將介紹如何在Windows環(huán)境下運(yùn)用Jenkins部署持續(xù)集成環(huán)境。之所以寫(xiě)本文,是因?yàn)樵谧罱ぷ鳟?dāng)中,學(xué)習(xí)使用Jenkins時(shí),確實(shí)遇到了一些問(wèn)題,而大多數(shù)教程文檔都是基于Mac或是Linux平臺(tái)。為此很是頭疼,經(jīng)過(guò)一番摸索,終于走通了Windows平臺(tái)下的一條路。
本CI系統(tǒng)流程:Dev提交代碼,并merge到master分支-->Jenkns獲取最新代碼,開(kāi)始構(gòu)建(解析git觸發(fā)響應(yīng),build solution,run automation,get result都在此步內(nèi)完成)-->構(gòu)建完成發(fā)送郵件。
首先,下載安裝Jenkins:https://jenkins.io/
安裝完成之后可以通過(guò)訪(fǎng)問(wèn)?http://hostname:8080?進(jìn)入管理頁(yè)面。選擇:Manage Jenkins"。
在右側(cè)列表中選中"Configure Global Secuity",選中"Allow user to sign up",然后就可以提前注冊(cè)好要賦權(quán)限的賬戶(hù)。若以后不允許新管理賬戶(hù)的注冊(cè),在取消此選中項(xiàng)。
接下來(lái),在代理項(xiàng)下,展開(kāi)代理協(xié)議,并全部選中。此處選中之后,會(huì)啟用"Java Web Start Agent",否則其在創(chuàng)建slave時(shí)處于不可見(jiàn)狀態(tài)。(使用此代理,還需提前安裝Java,到Java官網(wǎng)下載一個(gè)安裝即可)
再回到"Manage Jenkins"界面,選擇"Manage Node",點(diǎn)擊"New Node"創(chuàng)建一個(gè)新的slave,這里我們選擇"Permanent Agent",也可以選擇從已有的slave復(fù)制出新的節(jié)點(diǎn)。填寫(xiě)名稱(chēng),遠(yuǎn)程根目錄和標(biāo)簽,啟動(dòng)方法選擇如圖。這里的遠(yuǎn)程目錄用于存儲(chǔ)Jenkins客戶(hù)端運(yùn)行文件。其他設(shè)置默認(rèn)值就可以了:
好了,到這里一個(gè)node就創(chuàng)建好了。我們可以回到Node管理界面,此時(shí)新建的node是未連接狀態(tài),可以在你的另外一臺(tái)server,或本機(jī)上訪(fǎng)問(wèn)你的Jenkins頁(yè)面,并點(diǎn)擊"Launch"連接node,并將之安裝為本地service。如果你是Win10系統(tǒng),會(huì)出現(xiàn)安裝錯(cuò)誤,這時(shí)別急,先將你的IE或這Edge以管理員的方式重新啟動(dòng),再次訪(fǎng)問(wèn)Jenkins嘗試連接和安裝。當(dāng)你覺(jué)得要啟用這個(gè)安裝的service時(shí),先停止服務(wù),然后再cmd命令窗口輸入“sc delete servicename"就可以刪除此服務(wù)了。servicename可以再service的右鍵屬性中查看。
創(chuàng)建好了node,我們就和某一臺(tái)server連接上了,接下來(lái)我們需要去創(chuàng)建job,去完成我們需要做的工作。
回到Jenkins主頁(yè)面,點(diǎn)擊"New Item",這里我選擇使用"Freestyle Project"。編輯好項(xiàng)目名稱(chēng),描述之后,我們可以定義清楚過(guò)時(shí)的build。這里我定義為保留7天以?xún)?nèi)的build,并規(guī)定最多只保留10個(gè)build。
前面介紹過(guò),本CI系統(tǒng)響應(yīng)git返回的觸發(fā)條件,因此需要設(shè)置一個(gè)參數(shù)接收返回的響應(yīng),并在此設(shè)置在哪個(gè)node上執(zhí)行此次構(gòu)建任務(wù),即填寫(xiě)創(chuàng)建node時(shí)設(shè)置的Label:
?
除了在創(chuàng)建node時(shí)的默認(rèn)設(shè)置,我們也可以在此處設(shè)置自定義的workspace,獲取的代碼將存儲(chǔ)在此處:
在源代碼管理項(xiàng)中,我們選用Git,設(shè)置好相應(yīng)的git項(xiàng)目url和訪(fǎng)問(wèn)的用戶(hù)名和密碼,分支選默認(rèn)的master:
獲取了代碼之后,選擇觸發(fā)方式,如果時(shí)定時(shí)輪詢(xún)的方式,選擇"Poll SCM",設(shè)置間隔時(shí)間即可。需要每次提交都響應(yīng),這里我選擇遠(yuǎn)程觸發(fā)"Trigger builds remotely",設(shè)置一個(gè)token值待用。
這時(shí),我們需要到Git網(wǎng)站代碼管理設(shè)置頁(yè)面,添加一個(gè)"Hooks & services",并啟用"Pull request"。Payload URL的格式按照上面設(shè)置的token下提示的格式設(shè)置:
?
完成以上步驟之后,Job的運(yùn)行環(huán)境基本上就已經(jīng)設(shè)置成功了,接下來(lái)就是構(gòu)建自動(dòng)化運(yùn)行腳本了。
回到剛才的Job編輯頁(yè)面,繼續(xù)往下走,點(diǎn)擊"Add build step",在下拉框中可以看到,Jenkins支持的腳本語(yǔ)言十分豐富。這里我們會(huì)用到Window batch和Widows PowerShell。在這里寫(xiě)入你的業(yè)務(wù)處理腳本,保存一下。比如輸出"Jenkins CI",在Windows batch框中輸入"echo Jenkins CI",保存,就可以了。
最后,需要在腳本完成之后自動(dòng)發(fā)送郵件。來(lái)看看是如何配置的:
配置郵件通知之前,我們需要到"Configure System"中設(shè)置一下郵件系統(tǒng)的基本配置。
首先,填寫(xiě)好Jenkins訪(fǎng)問(wèn)地址和發(fā)件人郵箱地址。
接下來(lái),設(shè)置SMTP郵件服務(wù)器和一些默認(rèn)值,包括接收對(duì)象,主題,內(nèi)容等等。如此,最簡(jiǎn)單的郵件發(fā)送配置就完成了。后面來(lái)設(shè)置具體的郵件通知。
還是回到Job編輯頁(yè)面,找到"Post-build Actions"并選擇"Editable Email Notification"。設(shè)置實(shí)際的接收人,內(nèi)容格式和默認(rèn)主題。并設(shè)置默認(rèn)內(nèi)容,可以配合環(huán)境變量(此處不做詳解)參數(shù)化、格式化內(nèi)容文體。
需要發(fā)送附件的,還可以對(duì)附件的路徑、名稱(chēng)進(jìn)行設(shè)置。最后設(shè)置好郵件發(fā)送觸發(fā)條件就OK了。
這樣,一個(gè)完整的Windows平臺(tái)下的CI系統(tǒng)就建立起來(lái)了。
?相關(guān)文章:
.Net項(xiàng)目使用持續(xù)集成服務(wù)AppVeyor,Travis-CI實(shí)戰(zhàn)
部署:持續(xù)集成(CI)與持續(xù)交付(CD)——《微服務(wù)設(shè)計(jì)》讀書(shū)筆記
.NET Core+Selenium+Github+Travis CI => SiteHistory
Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自動(dòng)化發(fā)布和部署(1)
Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自動(dòng)化發(fā)布和部署(2)
利用VSTS跟Kubernetes整合進(jìn)行CI/CD
Centos7 & Docker & Jenkins & ASP.NET Core 2.0 自動(dòng)化發(fā)布和部署
原文地址:https://www.cnblogs.com/babygirl/p/jenkins_ci_windows.html
.NET社區(qū)新聞,深度好文,歡迎訪(fǎng)問(wèn)公眾號(hào)文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的一步步部署基于Windows系统的Jenkins持续集成环境的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: g4e基础篇#5 创建分支和保存代码
- 下一篇: Dotnet Core Windows