15.Jenkins-Unity自动打包搭建流程

使用Jenkins自动化打包的分哪些步骤?
1.使用命令行进行Unity打包
2.安装搭建Jenkins环境
3.使用Jenkins触发命令行,执行打包
4.将打包日志输出到Jenkins控制台 (可跳过)
1使用命令行进行Unity打包
分两个步骤:
1静态方法中实现打包
2命令行执行Unity项目中的静态方法
1 静态方法中实现打包
将CIBuild.cs放于Editor目录下
完整代码
https://github.com/smartgrass/XiaoCaoTools/blob/main/Assets/XiaoCaoTools/Core/Editor/CIBuid/CIBuild.cs
然后使用菜单的Tools/Build 验证是否能打包成功

2 命令行调用Unity项目中的静态方法 CIBuild.Build
-executeMethod CIBuild.Build 是Unity项目的静态方法
-quit 表示执行完成后退出
-batchmode 表示批处理模式, 即不打开Unity窗口
完整代码
https://github.com/smartgrass/XiaoCaoTools/blob/main/Assets/XiaoCaoTools/BuildTools/Build.bat
这需要注意Unity的路径或项目的路径不能有空格!
Windows的软件目录一般放在Program Files下,会因为空格读错指令,处理起来比较麻烦
此时已经可以不打开Unity就进行打包了

2.安装搭建Jenkins环境
这部分需要的时间比较长,考验电脑和网速...
1 安装
参考: https://blog.csdn.net/weixin_44679832/article/details/116432269
1.首先到 https://www.jenkins.io/ 下载安装包 jenkins.msi
同时jenkins需要比较高版本的jdk, 直接下jdk11吧
2.管理员模式运行jenkins.msi(非管理员模式运行可能会安装失败)
选择Run service as LocalSystem ,端口号默认8080
3.设置工作目录, 防止安装到c盘
环境变量,JENKINS_HOME,选一个路径(不带空格)
在jenkins.xml文件中,将:
<env name="JENKINS_HOME" value="%LocalAppData%\Jenkins\.jenkins"/>
修改为
<env name="JENKINS_HOME" value="%JENKINS_HOME%"/>
2 启动和配置
参考:https://zhuanlan.zhihu.com/p/490969696
启动,浏览器打开 http://localhost:8080/
等它安装很久很久, 然后按指示登录就行
结尾询问安装插件时, 自选插件,然后全不选跳过
此时,Jenkins就已经启动完成
3 安装中文插件(可跳过)
打开http://localhost:8080/manage/pluginManager/
available中搜索 Locale 和 Localization: Chinese ,安装
这里国内的代理一般连不上, 所以推荐在updates.jenkins-ci.org/download/plugins/
上先下载插件包, 然后在advanced Setting中的Deploy Plugin离线安装
安装完后需要重启Jenkins
http://localhost:8080/restart

3.使用Jenkins触发命令行,执行打包
首先需要创建项目

创建时, 除了写项目名字其他都先不管
创建完成后在Dashboard面板进入你的项目->配置


然后在BuildSteps中添加一个Windows batch ,这里就是执行命令的地方
比如执行前面写的Build.bat , 放于工作目录下就可以


接下来保存后就可以回到项目就可以执行构建

至此Jenkins自动化打包已完成
但此时Jenkins上没有打包的日志信息

4.将打包日志输出到Jenkins控制台
由于python的print可以在cmd中输出日志, 而Jenkins自动监听cmd中的日志
所以这里的思路是在python执行cmd命令进行打包,
同时开启一个线程,增量读取Unity的打包日志文本,print出来
https://github.com/smartgrass/XiaoCaoTools/blob/main/Assets/XiaoCaoTools/BuildTools/UnityBuild.py
Jenkins的Build Steps 命令为
这时, 项目路径没空格就太重要了
没出意外就可以看到构建过程的日志了

坑注意:
使用命令行构建时要关闭Unity, 不然Unity.exe会被占用,导致打包失败
日志中可以看到提示
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语法基础
https://www.bilibili.com/read/cv22973097