15.Jenkins-Unity自動(dòng)打包搭建流程

使用Jenkins自動(dòng)化打包的分哪些步驟?
1.使用命令行進(jìn)行Unity打包
2.安裝搭建Jenkins環(huán)境
3.使用Jenkins觸發(fā)命令行,執(zhí)行打包
4.將打包日志輸出到Jenkins控制臺(tái) (可跳過)
1使用命令行進(jìn)行Unity打包
分兩個(gè)步驟:
1靜態(tài)方法中實(shí)現(xiàn)打包
2命令行執(zhí)行Unity項(xiàng)目中的靜態(tài)方法
1 靜態(tài)方法中實(shí)現(xiàn)打包
將CIBuild.cs放于Editor目錄下
完整代碼
https://github.com/smartgrass/XiaoCaoTools/blob/main/Assets/XiaoCaoTools/Core/Editor/CIBuid/CIBuild.cs
然后使用菜單的Tools/Build 驗(yàn)證是否能打包成功

2 命令行調(diào)用Unity項(xiàng)目中的靜態(tài)方法 CIBuild.Build
-executeMethod CIBuild.Build 是Unity項(xiàng)目的靜態(tài)方法
-quit 表示執(zhí)行完成后退出
-batchmode 表示批處理模式, 即不打開Unity窗口
完整代碼
https://github.com/smartgrass/XiaoCaoTools/blob/main/Assets/XiaoCaoTools/BuildTools/Build.bat
這需要注意Unity的路徑或項(xiàng)目的路徑不能有空格!
Windows的軟件目錄一般放在Program Files下,會(huì)因?yàn)榭崭褡x錯(cuò)指令,處理起來比較麻煩
此時(shí)已經(jīng)可以不打開Unity就進(jìn)行打包了

2.安裝搭建Jenkins環(huán)境
這部分需要的時(shí)間比較長,考驗(yàn)電腦和網(wǎng)速...
1 安裝
參考: https://blog.csdn.net/weixin_44679832/article/details/116432269
1.首先到 https://www.jenkins.io/ 下載安裝包 jenkins.msi
?? 同時(shí)jenkins需要比較高版本的jdk, 直接下jdk11吧
2.管理員模式運(yùn)行jenkins.msi(非管理員模式運(yùn)行可能會(huì)安裝失敗)
????選擇Run service as LocalSystem ,端口號(hào)默認(rèn)8080
3.設(shè)置工作目錄, 防止安裝到c盤
環(huán)境變量,JENKINS_HOME,選一個(gè)路徑(不帶空格) ?
在jenkins.xml文件中,將:
<env name="JENKINS_HOME" value="%LocalAppData%\Jenkins\.jenkins"/>
修改為
<env name="JENKINS_HOME" value="%JENKINS_HOME%"/>
2 啟動(dòng)和配置
參考:https://zhuanlan.zhihu.com/p/490969696
啟動(dòng),瀏覽器打開 http://localhost:8080/
等它安裝很久很久, 然后按指示登錄就行
結(jié)尾詢問安裝插件時(shí), 自選插件,然后全不選跳過
此時(shí),Jenkins就已經(jīng)啟動(dòng)完成
3 安裝中文插件(可跳過)
打開http://localhost:8080/manage/pluginManager/
available中搜索 Locale 和 Localization: Chinese ,安裝
這里國內(nèi)的代理一般連不上, 所以推薦在updates.jenkins-ci.org/download/plugins/
上先下載插件包, 然后在advanced Setting中的Deploy Plugin離線安裝
安裝完后需要重啟Jenkins
http://localhost:8080/restart

3.使用Jenkins觸發(fā)命令行,執(zhí)行打包
首先需要?jiǎng)?chuàng)建項(xiàng)目

創(chuàng)建時(shí), 除了寫項(xiàng)目名字其他都先不管
創(chuàng)建完成后在Dashboard面板進(jìn)入你的項(xiàng)目->配置


然后在BuildSteps中添加一個(gè)Windows batch ,這里就是執(zhí)行命令的地方
比如執(zhí)行前面寫的Build.bat , 放于工作目錄下就可以


接下來保存后就可以回到項(xiàng)目就可以執(zhí)行構(gòu)建

至此Jenkins自動(dòng)化打包已完成
但此時(shí)Jenkins上沒有打包的日志信息

4.將打包日志輸出到Jenkins控制臺(tái)
由于python的print可以在cmd中輸出日志, 而Jenkins自動(dòng)監(jiān)聽cmd中的日志
所以這里的思路是在python執(zhí)行cmd命令進(jìn)行打包,
同時(shí)開啟一個(gè)線程,增量讀取Unity的打包日志文本,print出來
https://github.com/smartgrass/XiaoCaoTools/blob/main/Assets/XiaoCaoTools/BuildTools/UnityBuild.py
Jenkins的Build Steps 命令為
這時(shí), 項(xiàng)目路徑?jīng)]空格就太重要了
沒出意外就可以看到構(gòu)建過程的日志了

坑注意:
使用命令行構(gòu)建時(shí)要關(guān)閉Unity, 不然Unity.exe會(huì)被占用,導(dǎo)致打包失敗
日志中可以看到提示
Multiple Unity instances cannot open the same project.
引路:
很長但比較完整的教程
https://betheme.net/qianduan/105895.html
untiy cmd指令
https://docs.unity3d.com/cn/2022.1/Manual/EditorCommandLineArguments.html?? ?
Unity打包日志輸出到Jenkins
https://blog.csdn.net/yy405145590/article/details/84328345
bat語法基礎(chǔ)
https://www.bilibili.com/read/cv22973097