测试机:红帽 Linux8
源码仓库:Gitee - MrRiver/Unity Example
系统环境准备
1)yum 源
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
sudo sed -i 's/\$releasever/8/g' /etc/yum.repos.d/CentOS-Base.repo # 强制指定RHEL8版本
使用公网的 yum 源作为首选项。若需要离线部署,则应当自行准备以下内容:
- Jenkins
- java-17-openjdk-devel
- git
如何准备 rpm 包,可参考 【教程】准备离线可用的 RPM 包。
2)准备工具集
sudo dnf groupinstall -y "Development Tools"
sudo dnf install -y git wget unzip curl which
注意!git
是CI/CD流程中必备的工具。
3)JAVA 环境
sudo dnf install -y java-17-openjdk-devel
注意:存在系统已安装 Java-jdk 的情况。请确保版本至少在11以上。当系统存在多版本 JAVA-JDK 时,应考虑 Jenkins 使用的 JAVA-JDK 版本对象,否则会出现 Jenkins 启动失败问题。
4)部署 Jenkins
# 导入 Jenkins 仓库
# 来源 Jenkins 官方关于 Redhat 稳定版的仓库配置文件
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo# 验证软件包完整性/真实性的GPG密钥
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key# 安装
sudo dnf install -y jenkins
# 服务自启动与立即运行
sudo systemctl enable jenkins --now
sudo systemctl start jenkins
访问 Jenkins 地址:主机地址:8080
Jenkins 配置环境+账户参考:【教程】Jenkins 基础环境配置 + 账号管理
5)部署 Unity 2021.3.22
# 访问 Unity 官网下载 Unity Hub
# 以 Unity 2022.3.62f1c1 为准
# 补充 LInux Build Support(IL2CPP)模块
建议使用图形界面安装。
Jenkins 环境准备
1)插件安装
Unity3d - 核心插件
2)配置全局环境
指引:Manage Jenkins / System Configuration / Tools
Jenkins 需要指导 Git Unity3d 工具源。因此需要配置其启动程序!
![]() | ![]() |
3)配置任务
指引:Jenkins / Create New Item / Freestyle project
![]() | ![]() |
关于 Git
要求 Jenkins 可访问 Git 仓库地址。若仓库存在于公网,则需保证网络可达!
关于 Unity3d
-batchmode -quit -nographics -projectPath ${WORKSPACE}/CICD -executeMethod BuildScript.PerformBuild -logFile ${WORKSPACE}/CICD/build.log
-batchmode
:无交互式界面-quit
:执行完成后退出-nographics
:禁用图形渲染-projectPath ${WORKSPACE}/CICD
:默认情况下,Jenkins 任务对应存储至其 WORKDSPACE 下。这意味着你的任何 Git 文件均是基于该目录下存储。故 ${WORKSPACE} ☞ Jenkins工作空间。如所示我的工作空间为目录下 CICD 目录。-executeMethod BuildScript.PerformBuild
:调用构建方法-logFile ${WORKSPACE}/CICD/build.log
:日志输出路径
对于 Unity 源码
见 https://gitee.com/River314588804/unity-example/blob/master/CICD/Assets/Editor/BuildScript.cs
Unity3d 插件执行构建要求源码工程路径 Asset/Editor/BuildScript.cs
文件存在,并严格要求 PerformBuild
静态方法。
关于推送即构建
如 Gitee 为例。需要安装 Gitee Plugin。
![]() | ![]() | ![]() |