Jenkins在Unity3D项目中的使用

Jenkins在Unity3D项目中的使用

Jenkins是一款开源的持续集成(CI)、持续交付(CD)软件,主要用于各种任务的自动化,包括自动构建、自动测试和自动部署系统。

安装Jenkins

我这里使用的环境是Windows,其他的安装方法可以参考这里

Jenkins的安装方式有很多种,我这里直接使用Window安装包进行安装,这里是下载地址,安装过程比较简单,没上面需要多说的,安装完成之后,Jenkins服务就会自动启动。

配置Jenkins

因为这里主要针对的是Unity3D项目的自动构建,所以在进行Jenkins配置之前,需要提前安装好Unity3D编辑器。

各种环境安装完成之后,在浏览器中输入 http://localhost:8080 登录jenkins,第一次登录需要初始密码,根据界面提示可以在相应文件中找到,只需要重新注册账号密码即可。

在成功登录到 Jenkins 之后,按照下面步骤配置Jenkins:

  • 安装 Unity3D 构建插件。打开“系统设置->插件管理”页面,在“Available”标签内搜索“unity3d”,然后选择unity3d插件进行安装,安装完成之后重启Jenkins。
  • 配置 Unity3D 全局工具。打开“系统设置->全局工具配置”,找到Unity3D工具,点击“Add Unity3D”按钮,然后输入名字,和Unity3D的安装目录。
  • 配置 Unity3D 全局默认配置。打开“系统设置->系统设置”,在下面找到“Unity3d default configuration”,在“Global argLine”中输入:
1
-logFile "$WORKSPACE/build.log" -quit -batchmode -nographics -executeMethod $BuildMethod -output "$WORKSPACE/Builds/test.exe"
  • 将下面脚本放到Unity3D项目中的Editor 目录下,该脚本只实现了Windows平台的构建,如果需要其他平台,可以参照”PerformWindowsBuild”自行实现。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

class MyEditorScript
{
static string[] SCENES = FindEnabledEditorScenes();

static string APP_NAME = "YourProject";
static string TARGET_DIR = "target";

[MenuItem("Custom/CI/Build Windows")]
static void PerformWindowsBuild()
{
string target_dir = APP_NAME + ".exe";
GenericBuild(SCENES, TARGET_DIR + "/" + target_dir, BuildTargetGroup.Standalone, BuildTarget.StandaloneWindows, BuildOptions.None);
}

private static string[] FindEnabledEditorScenes()
{
List<string> EditorScenes = new List<string>();
foreach (EditorBuildSettingsScene scene in EditorBuildSettings.scenes)
{
if (!scene.enabled) continue;
EditorScenes.Add(scene.path);
}
return EditorScenes.ToArray();
}

static void GenericBuild(string[] scenes, string target_dir, BuildTargetGroup group, BuildTarget build_target, BuildOptions build_options)
{
EditorUserBuildSettings.SwitchActiveBuildTarget(group, build_target);
var res = BuildPipeline.BuildPlayer(scenes, target_dir, build_target, build_options);
}
}
  • 新建构建任务。点击新建任务,输入任务名称,任务类型选择“自由风格”,然后点击“OK”进入任务配置页面。
  • 配置任务。
    • 首先配置项目目录,在“General”标签下面的“Advanced”中,勾选“Use custom workspace”,然后输入项目工程的目录和显示名称。
    • 然后在Buiild标签下面,添加“Invoke Unity3D Editor”,“Unity3d installation name”选择Unity版本,“Editor command line arguments”这里如果不填任何内容,将使用Unity3D全局默认配置。
    • 如果使用全局默认参数,还需要指定一些参数值,在“General”标签下面,勾选“参数化构建过程”,添加“选项参数”,参数的名称设置为“BuildMethod”,“Choices”设置为“MyEditorScript.PerformWindowsBuild”。

所有的配置完成之后,就可以进行自动化构建了,进入到任务页面,然后选择”Build with Parameters”,”BuildMethod”选择“MyEditorScript.PerformWindowsBuild”,然后点击“Build”,稍等一下,如果成功的话,生成的程序将会在“target/”目录下。

基于Git的构建

待完成

基于SVN的构建

待完成