脚本自动定时打开链接_自动化构建系统
在軟件開(kāi)發(fā)過(guò)程中,特別是在一些大型多人合作開(kāi)發(fā)的項(xiàng)目中,如何將各個(gè)人開(kāi)發(fā)的不同模塊集合為一個(gè)完整的系統(tǒng),最終輸出一個(gè)完整的目標(biāo)文件,這個(gè)過(guò)程包括編譯,發(fā)布,自動(dòng)化測(cè)試等環(huán)節(jié)。這一過(guò)程的完善程度和流暢程度將會(huì)影響整個(gè)發(fā)布過(guò)程,如果整個(gè)過(guò)程都需要人為干預(yù),那么每次需要構(gòu)建版本的時(shí)候都會(huì)是一場(chǎng)災(zāi)難。
筆者剛進(jìn)入游戲行業(yè)時(shí),曾經(jīng)在一個(gè)初創(chuàng)手游團(tuán)隊(duì)工作過(guò),當(dāng)時(shí)所有版本的發(fā)布都是由我負(fù)責(zé),在開(kāi)發(fā)前期只有一個(gè)版本維護(hù),僅僅是在驗(yàn)收的時(shí)候發(fā)布一個(gè)PC版,但是到了后期需要維護(hù)IOS和Android兩個(gè)平臺(tái),其中Android版本在接入渠道后,針對(duì)每個(gè)渠道都要分別打包,整個(gè)過(guò)程都需要我手動(dòng)控制,雖然寫(xiě)了幾個(gè)自動(dòng)化腳本但是整個(gè)流程并不是完全自動(dòng)化,常常是之前搭建好的構(gòu)建環(huán)境,在經(jīng)過(guò)幾次提交后又會(huì)出現(xiàn)若干錯(cuò)誤,這時(shí)候又需要我一個(gè)一個(gè)解決。項(xiàng)目雖然還是在有條不紊的進(jìn)行中但是整個(gè)發(fā)布過(guò)程卻是異常痛苦。
后來(lái)又參與了一款端游的研發(fā),項(xiàng)目的負(fù)責(zé)人利用Windows的定時(shí)任務(wù)和批處理腳本制作了一套自動(dòng)化構(gòu)建腳本,每次需要構(gòu)建版本時(shí)只需要運(yùn)行下批處理腳本,這個(gè)過(guò)程會(huì)鎖定SVN的提交權(quán)限,任何人都無(wú)法提交任何東西,直到構(gòu)建完畢,如果在構(gòu)建過(guò)程中出現(xiàn)錯(cuò)誤腳本會(huì)自動(dòng)將錯(cuò)誤信息發(fā)送到開(kāi)發(fā)人員的IM工具。雖然端游只需要發(fā)布到一個(gè)平臺(tái),但是整個(gè)構(gòu)建過(guò)程是不需要人為干預(yù)的完全不影響開(kāi)發(fā)人員當(dāng)前的工作。在每天的凌晨2點(diǎn)工具會(huì)自動(dòng)構(gòu)建當(dāng)前最新的版本,這樣測(cè)試組在上班后就可以立即用最新版本的游戲進(jìn)行測(cè)試,并反饋測(cè)試結(jié)果。
因此一個(gè)完善的構(gòu)建系統(tǒng)對(duì)于整個(gè)團(tuán)隊(duì)的開(kāi)發(fā)效率是有很大影響的,通俗來(lái)講構(gòu)建系統(tǒng)(build system)是用來(lái)從源代碼生成用戶可以使用的目標(biāo)(targets)的自動(dòng)化工具,一個(gè)靈活的構(gòu)建系統(tǒng)應(yīng)該可以支持任意擴(kuò)展和隨意配置,并且支持流水線作業(yè)。目前市面上的幾款自動(dòng)化構(gòu)建系統(tǒng)都已經(jīng)非常完善強(qiáng)大了。
Jenkins
本文主要以Jenkins為例講解如何在Windows環(huán)境配置自動(dòng)化構(gòu)建系統(tǒng),Linux環(huán)境的配置可自行搜索相關(guān)文獻(xiàn)。作為一款持續(xù)集成工具Jenkins不僅提供了基本的持續(xù)構(gòu)建功能,還提供了很多強(qiáng)大的額外功能,比如:打包后使用開(kāi)源軟件FileZilla進(jìn)行上傳、下載部署;可以編寫(xiě)單元測(cè)試腳本自動(dòng)執(zhí)行打包后版本進(jìn)行匯總性能分析;打包失敗自動(dòng)發(fā)送郵件給相關(guān)負(fù)責(zé)人等等。不僅如此Jenkins提供的插件功能更是涵蓋了持續(xù)化集成的方方面面,這些功能基本可以滿足任何項(xiàng)目的持續(xù)化集成與交付需求。
用到的軟件或工具
環(huán)境搭建
- Python運(yùn)行環(huán)境配置:下載并安裝Python,將安裝后python.exe所在的目錄附加到PATH環(huán)境變量中,我的電腦->右鍵屬性->高級(jí)系統(tǒng)設(shè)置->高級(jí)->環(huán)境變量,PATH中新增C:Python27(Python所在目錄)。
- Java運(yùn)行環(huán)境配置:按照對(duì)應(yīng)操作系統(tǒng)下載并安裝jre,如果未自動(dòng)配置Java環(huán)境變量,手動(dòng)配置方法同Python。
- 7z環(huán)境配置:下載安裝好7z,環(huán)境變量 PATH中新增C:Program Files7-Zip(Python所在目錄)條目。
- Jenkins運(yùn)行及配置:下載 jenkins.war,進(jìn)入所在目錄運(yùn)行java -jar jenkins.war ,然后在瀏覽器中打開(kāi)http://localhost:8080,復(fù)制以上密碼,進(jìn)行jenkins初次設(shè)置。
- 配置環(huán)境:把剛剛復(fù)制的password粘貼到Administrator password,安裝好必備的plugin,創(chuàng)建一個(gè)初始Admin User,Jenkins 環(huán)境就配置完成了。
如果遇到“該Jenkins實(shí)例似乎已離線”
可以參考以下方式解決:
打開(kāi)一個(gè)新的tab,輸入網(wǎng)址http://localhost:8080/pluginManager/advanced。 將最下面的“Update Site”中Jenjins默認(rèn)地址http://updates.jenkins.io/update-center.json改為其他國(guó)內(nèi)備用地址:
最后在瀏覽器輸入http://localhost:8080/restart ,再啟動(dòng)就可以正常下載插件了。
安裝插件創(chuàng)建Job
在Jenkins主頁(yè)下可以點(diǎn)擊New Item 創(chuàng)建一個(gè)新的Job,Jekins提供了多種模板,選擇第一個(gè)Freestyle project 。Item Name建議最好與你的項(xiàng)目相同。Job 配置有General,源碼管理,構(gòu)建觸發(fā)器,構(gòu)建環(huán)境,構(gòu)建,以及構(gòu)建后操作幾個(gè)部分。
創(chuàng)建Job打開(kāi)Jenkins主頁(yè)左側(cè)系統(tǒng)管理,選擇系統(tǒng)設(shè)置,在主目錄下方一行點(diǎn)擊高級(jí)按鈕,顯示出工作空間根目錄,更改到你的Workspace中:E:You Project Name${ITEM_FULLNAME}
編寫(xiě)B(tài)uild腳本
構(gòu)建腳本可以是Python也可以是Windows的批處理命令或者其他語(yǔ)言編寫(xiě)的腳本,整個(gè)過(guò)程主要是通過(guò)在Jenkins中配置好的參數(shù),調(diào)用腳本最終腳本調(diào)用對(duì)應(yīng)的編譯工具進(jìn)行打包,如果是Unity項(xiàng)目最終會(huì)調(diào)用ProjectBuild.cs進(jìn)行對(duì)應(yīng)平臺(tái)的打包操作。如果是Unreal項(xiàng)目則會(huì)調(diào)用Unreal Engine的打包工具進(jìn)行打包。例如新建一個(gè)UnityBuild.bat的Unity構(gòu)建文件:
UnityBuild.bat 內(nèi)容如下REM UNITY程序的路徑 SET UNITY_PATH="D:Program Files (x86)Unity2019.2.0f1EditorUnity.exe"REM 游戲程序路徑 SET PROJECT_PATH="E:JenkinsworkspaceAutoBuild"REM 在Unity中構(gòu)建apk %UNITY_PATH% -projectPath %PROJECT_PATH% -quit -batchmode -executeMethod ProjectBuild.BuildForAndroid %1 -logFile build.logecho "Build生成完畢" PAUSE配置Jenkins job
jenkins job 配置官方有詳細(xì)的文檔,在Jenkins主頁(yè)選擇創(chuàng)建好的job,左邊進(jìn)入Configure
Build
配置完成保存,然后左邊選擇 Build with Parameters,可以看到配置中添加的參數(shù)列表,點(diǎn)擊開(kāi)始構(gòu)建執(zhí)行打包操作。同時(shí)還可以打開(kāi)Console Output 查看日志,以及打開(kāi)變更記錄查看此次打包變更內(nèi)容。打包后可以在配置好的release_path 目錄下看到壓縮后的版本。
參考文獻(xiàn)
- Jenkins+Unity踩坑日記(詳細(xì)下載安裝手冊(cè)):https://blog.csdn.net/alph258/article/details/86075956
- Jenkins集成unity一鍵打安卓包:https://zhuanlan.zhihu.com/p/87964476
總結(jié)
以上是生活随笔為你收集整理的脚本自动定时打开链接_自动化构建系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Ajax动态拼接li并绑定事件
- 下一篇: java信息管理系统总结_java实现科