Jenkins+Unity +git 自动化构建

使用的版本

系统:Windows 11
Jenkins:2.361.2
Unity:2021.3.4f1
git: 2.34.1

Jenkins安装

官网

https://www.jenkins.io/zh/

安装中的注意事项
Logon Type 登录类型可以设置为LocalSystem(not recommended) 可以后续再更改
端口的设置要是选一个未被占用的
开启和关闭jenkins的dos命令行

net start jenkins
net stop jenkins

用浏览器进入 localhost:安装设置的端口
第一次登入会提示解锁Jenkins,密码是在当前页面直接提示的计算机位置,找到之后,用文档格式打开,粘贴即可。
插件安装
安装推荐的插件即可,部分需科学上网,或者跳过。
我们需要用的插件主要是Unity3d plugin、git相关的插件
设置账户密码,登录。
或者在登录之后主页Manager Jenkins>Manager Plugins 也可以安装卸载插件

Jenkins 全局配置
Manager Jenkins>Global Tool Configuration
JDK:需要配置系统Path 环境变量,然后把Java_home填入
Git:安装后自动获取
Unity3d: 安装目录选择Editor目录的根目录,如 C:\Unity\2021.3.4f1c1

dos批处理操作Unity的一些命令

-batchmode

在批处理模式下运行Unity。应始终与其他命令行参数一起使用,因为它确保不会弹出窗口,无需任何人为的干预。当脚本代码在执行过程中发生异常,资源服务器更新失败或其他操作失败时Unity将立即退出,并返回代码为1。请注意,在批处理模式下, Unity将向控制台发送输出版本最小的日志。当然,日志文件将包含完整的日志信息。

-quit

其他命令执行完毕后将退出Unity编辑器。请注意,这可能会导致错误消息被隐藏(但他们将显示在Editor.log文件)

-createProject

根据提供的路径建立一个空项目

-projectPath

打开指定路径的项目

-logFile

指定 Unity 写入编辑器或 Windows/Linux/OSX 独立日志文件的位置

-exportPackage

导出一个包,给定一个路径(或一组给定的路径)。在本例中,exportAssetPath是要从 Unity 项目导出的文件夹(相对于 Unity 项目根目录),exportFileName是包名称。此选项一次仅导出整个文件夹。您通常需要将此命令与-projectPath参数一起使用。

-executeMethod <ClassName.MethodName>

一旦 Unity 打开项目,并且在可选的资​​产服务器更新完成后,立即执行静态方法。您可以将其用于诸如持续集成、执行单元测试、构建或准备数据之类的任务。

要从命令行进程返回错误,请抛出导致 Unity 以返回代码 1 退出的异常,或者使用非零返回代码调用EditorApplication.Exit。

要传递参数,请将它们添加到命令行并使用System.Environment.GetCommandLineArgs. 要使用-executeMethod,将封闭脚本放在 Editor 文件夹中,执行的方法必须定义为静态的。

参考:https://docs.unity3d.com/cn/current/Manual/EditorCommandLineArguments.html

Jenkins的任务创建

主页>新建任务>输入任务名称>Freestyle project> 确定
General> 勾选 This project is parameterized (参数化)
高级> 勾选 使用自定义的工作空间
需注意的是Jenkins中变量的使用是$ 而不是%%

在这里插入图片描述
源码管理
勾选git
输入git仓库地址,访问用的账户密码 如果是ssh 需要输入密钥,选择分支
在这里插入图片描述

这样配置就可以自动更新分支到最新,但是会脱离远端,想重新推送需要手动切换分支

Build Steps
在这里插入图片描述
Editor command line arguments
输入语句(其他的帖子使用的都是%%引用变量,尝试多次之后发现使用$才能正确引用)

-quit  -batchmode  -projectPath $WORKPATH  -executeMethod BuildTool.BuildAndroid   -logFile "I:\output.log"

-executeMethod 脚本名.方法名
Unity 编辑器代码参考

public static void BuildAndroid()
{
    BuildPlayerOptions options = new BuildPlayerOptions();
    options.scenes = new string[]
    {
        "Assets/Scenes/SampleScene.unity"
    };
    options.locationPathName = Application.dataPath + "/../Build/test.apk";
    options.target = BuildTarget.Android;
    options.options = BuildOptions.None;
    BuildPipeline.BuildPlayer(options);
}

Jenkins参数化到Unity的使用
Jenkins
设置变量
在这里插入图片描述

变量的使用
在这里插入图片描述

Unity:

//获取控制台输入的信息 
 string[] args = System.Environment.GetCommandLineArgs();
        foreach (var s in args)
        {
            if (s.Contains("--Name:"))
            {
                temp = s.Split(':')[1];
                // 设置app名字
                PlayerSettings.productName = temp;
            }
        }

保存后回到任务界面,点击Build,成功后左下角会出现绿色的标,红色X为错误,看控制台信息解决。
点击build with paramen

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unity项目中实施持续集成(Continuous Integration,CI)是一个好的做法,可以帮助团队在开发过程中更好地管理和集成代码,并实时检测潜在的问题。下面是一个基本的Unity项目持续集成的步骤: 1. 版本控制:首先,确保你的Unity项目使用版本控制系统(如Git),并将代码存储在远程仓库中。这样可以方便团队成员之间的协作和代码管理。 2. CI工具选择:选择一个适合你项目的CI工具,如Jenkins、Travis CI、CircleCI等。这些工具可以帮助你自动构建、测试和部署Unity项目。 3. 创建构建脚本:在你的项目中创建一个构建脚本,用于自动化构建过程。这个脚本应该包括构建Unity项目的命令行参数、依赖项的安装和配置等。 4. 设置CI服务器:根据选定的CI工具,配置服务器环境并连接到远程代码仓库。设置触发构建的条件,例如每次提交代码或定期构建。 5. 构建和测试:当触发条件满足时,CI服务器将自动拉取最新代码并执行构建脚本。这将生成可执行文件、测试游戏逻辑、运行自动化测试等。 6. 检查构建结果:CI服务器会生成构建报告和日志,你可以查看构建结果、错误信息和警告等。如果构建失败或测试不通过,你将及时得到通知。 7. 部署和发布:如果构建成功且测试通过,你可以将生成的可执行文件上传到适当的发布平台(如Steam、App Store等)。某些CI工具还支持自动化部署到特定平台。 上述步骤是一个基本的CI流程,你可以根据项目需求进行调整和扩展。持续集成的目标是在开发过程中保持代码的稳定性和质量,并加快迭代周期。它有助于减少手动错误,提高开发效率,并为团队提供一个可靠的构建和测试环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值