測試機:紅帽 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。
![]() | ![]() | ![]() |