在 Unity 开发过程中,持续集成/持续部署 (CI/CD) 能够显著提高开发效率,降低集成风险。本文将详细介绍如何在 Windows 10 环境下,搭建 Jenkins CI/CD 环境,实现 Unity 项目的自动化构建和部署。
为什么选择 Jenkins?
Jenkins 是一款开源的自动化服务器,能够自动化执行各种任务,例如构建、测试和部署软件。它具有丰富的插件生态系统,可以与各种工具集成,非常适合构建 CI/CD 流程。对比一些云端的 CI/CD 方案,例如 Azure DevOps,Jenkins 更加灵活,成本也更可控,尤其对于一些小型团队或者个人开发者来说,Jenkins 是一个不错的选择。 考虑到国内网络环境的复杂性,使用 Jenkins 能够更好地控制构建过程,避免一些由于网络不稳定导致的问题。
准备工作
在开始之前,请确保你已经安装了以下软件:
- Java Development Kit (JDK): Jenkins 是一个 Java 应用程序,需要 JDK 才能运行。建议安装 JDK 8 或更高版本。
- Unity Editor: 需要安装 Unity Editor,用于构建 Unity 项目。
- Git: 用于版本控制和代码管理。
- Windows 10 操作系统: 本文基于 Windows 10 环境进行演示。
Jenkins 安装与配置
下载 Jenkins:
访问 Jenkins 官网 (https://www.jenkins.io/), 下载 Windows 版本的 Jenkins 安装包。

安装 Jenkins:
双击下载的安装包,按照提示完成安装。安装过程中,可以选择 Jenkins 的安装目录和端口号。 默认情况下,Jenkins 将使用 8080 端口。如果 8080 端口已被占用,可以选择其他端口。
启动 Jenkins:
安装完成后,Jenkins 会自动启动。如果没有自动启动,可以在 Windows 服务中找到 Jenkins 服务并手动启动。

访问 Jenkins:
在浏览器中输入
http://localhost:8080(如果使用了其他端口,请替换为相应的端口号),即可访问 Jenkins 控制台。首次访问时,需要输入管理员密码。密码通常位于C:\ProgramData\Jenkins\.jenkins\secrets\initialAdminPassword文件中。安装常用插件:
登录 Jenkins 后,点击 "Manage Jenkins" -> "Manage Plugins" -> "Available",搜索并安装以下插件:

- Git Plugin: 用于从 Git 仓库拉取代码。
- Unity3d Plugin: 用于构建 Unity 项目。(如果 Jenkins 没有这个官方插件,可以使用 Execute Shell 命令,自己编写命令行构建脚本)
- Build Timestamp Plugin: 用于在构建过程中添加时间戳。
- Pipeline Plugin: 用于创建 CI/CD Pipeline。
- Publish Over SSH: 用于将构建好的文件部署到远程服务器。(可选,如果需要自动化部署到服务器)
配置 Unity 项目构建 Job
创建新 Job:
在 Jenkins 控制台中,点击 "New Item",输入 Job 名称,选择 "Freestyle project" 或 "Pipeline",点击 "OK"。
配置 Git 仓库:
在 "Source Code Management" 部分,选择 "Git",输入 Git 仓库的 URL 和凭据。

配置构建步骤:
- 如果是 Freestyle project,在 "Build" 部分,点击 "Add build step",选择 "Execute Windows batch command",输入构建 Unity 项目的命令行。
- 如果是 Pipeline,则需要编写
Jenkinsfile文件,在文件中定义构建步骤。Jenkinsfile可以放在 Git 仓库中,Jenkins 会自动读取。一个简单的Jenkinsfile示例如下:
pipeline { agent any stages { stage('Checkout') { steps { git 'https://github.com/your-repo/your-unity-project.git' } } stage('Build') { steps { bat "C:\\Program Files\\Unity\\Hub\\Editor\\2021.3.LTS\\Editor\\Unity.exe -quit -batchmode -projectPath . -buildTarget Win64 -executeMethod BuildScript.BuildPlayer -logFile build.log" } } } }请注意替换
Unity.exe的路径和构建参数。其中-buildTarget指定构建平台,-executeMethod指定执行的构建脚本。BuildScript.BuildPlayer是一个自定义的 Unity 构建脚本,用于自动化构建。配置构建后操作:
在 "Post-build Actions" 部分,可以配置构建完成后要执行的操作,例如发布构建结果,发送通知等。
Unity 构建脚本 (Build Script)
在 Unity 项目中,需要创建一个构建脚本,用于自动化构建。以下是一个简单的构建脚本示例:
using UnityEditor;
using UnityEngine;
public class BuildScript
{
[MenuItem("Build/Build Player")]
public static void BuildPlayer()
{
string[] scenes = { "Assets/Scenes/MainScene.unity" };
string buildPath = "Builds/Windows/MyGame.exe";
BuildPipeline.BuildPlayer(scenes, buildPath, BuildTarget.StandaloneWindows64, BuildOptions.None);
Debug.Log("Build complete: " + buildPath);
}
}
将此脚本放在 Editor 文件夹中,然后在 Jenkins 中配置 -executeMethod BuildScript.BuildPlayer 即可。
实战避坑经验总结
- 权限问题: Jenkins 运行时使用的用户可能没有访问 Unity 安装目录的权限,导致构建失败。需要确保 Jenkins 运行的用户具有足够的权限。
- Unity 激活: Unity 需要激活才能进行构建。如果 Jenkins 运行在没有 Unity 激活的机器上,构建将会失败。可以使用命令行参数进行 Unity 激活。
- 构建缓存: Unity 的构建过程可能会产生大量的缓存文件,占用磁盘空间。可以定期清理构建缓存,避免磁盘空间不足。
- 日志分析: 构建过程中产生的日志文件对于排查问题非常重要。建议配置 Jenkins 保存构建日志,并在构建失败时及时分析日志。
- 版本控制: 确保所有的代码和资源都纳入版本控制,方便回溯和管理。
- 网络代理: 如果 Jenkins 运行在有网络代理的环境中,需要配置 Jenkins 的代理设置,才能正常访问外部资源。
通过以上步骤,你就可以在 Windows 10 环境下,使用 Jenkins 实现 Unity 项目的自动化构建 CI/CD。这将大大提高你的开发效率,降低集成风险。
冠军资讯
代码一只喵