【教程】Unity CI/CD流程

測試機:紅帽 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 工具源。因此需要配置其啟動程序!

圖1 Git 源配置
圖2 Unity 源配置

?

3)配置任務

指引:Jenkins / Create New Item / Freestyle project

圖1 Git 拉取倉庫
圖2 使用 Unity 自動化構建源碼工程內容

關于 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。

圖1 Gitee 插件
圖2 構建配置中的觸發器 & Webhook
圖3 Gitee 配置 Webhook

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/94502.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/94502.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/94502.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

文獻閱讀 | Briefings in Bioinformatics | Hiplot:全面且易于使用的生物醫學可視化分析平臺

文獻介紹文獻題目: Hiplot:一個綜合且易于使用的 Web 服務,用于增強出版物準備的生物醫學數據可視化 研究團隊: Openbiox/Hiplot 社區 發表時間: 2022-07-05 發表期刊: Briefings in Bioinformatics 影響因…

【數字圖像處理系列筆記】Ch04:灰度變換與空間域圖像增強(2)

目錄 一、空域濾波基礎 一、空域濾波的基本概念 二、空域濾波的數學原理 三、空域濾波器的分類與典型示例 (一)線性濾波器(Linear Filter) (二)非線性濾波器(Non-linear Filter&#xff0…

AI浪潮下,FPGA如何實現自我重塑與行業變革

引言:AI 與 FPGA,新時代的碰撞 2025 年,人工智能技術迎來爆發式增長,大模型、生成式 AI 和多模態技術持續突破,人形機器人量產元年正式開啟,自動駕駛商業化進程加速,工業數字化轉型全面鋪開(1)…

系統集成項目管理工程師【第十一章 規劃過程組】定義范圍、創建WBS、規劃進度管理和定義活動篇

系統集成項目管理工程師【第十一章 規劃過程組】定義范圍、創建WBS、規劃進度管理和定義活動篇 一、定義范圍:給項目畫好"邊界線" 定義范圍是明確項目和產品"做什么、不做什么"的過程,直接影響后續所有工作的方向。 1. 核心概念與作…

Spring Boot 參數校驗全指南

Spring Boot 參數校驗全指南 在 Web 開發中,參數校驗是保障接口安全性和數據合法性的關鍵環節。手動編寫校驗邏輯不僅繁瑣,還容易遺漏邊界情況。Spring Boot 整合了 validation 工具,提供了一套簡潔高效的參數校驗方案,可快速實現…

常用技術資料鏈接

1.team技術 https://zhuanlan.zhihu.com/p/11389323664 https://blog.csdn.net/Lucky_Lu0/article/details/121697151 2.bond切換主備 https://www.xgss.net/3306.html 3.ssh詳解: https://cloud.tencent.com/developer/news/105165 https://blog.huochengrm.c…

【Spring Cloud】-- 注冊中心

文章目錄1. 什么是注冊中心2. CPA理論1. 什么是注冊中心 注冊中心有三種角色: 服務提供者(Server) :提供接口給其他微服務的程序。服務消費者(Client):調用其他微服務提供的接口。**服務注冊中…

go-zero 詳解

go-zero 詳解 go-zero 是一個基于 Go 語言的微服務框架,由字節跳動團隊開發并開源,旨在幫助開發者快速構建高可用、高性能的微服務架構。它集成了豐富的組件,簡化了微服務開發中的常見問題(如服務注冊發現、配置管理、限流熔斷等&…

接口自動化框架封裝之統一請求封裝及通過文件實現接口關聯

接口自動化測試框架封裝目的:簡化自動化框架的落地,提高投入和產出比,只要一個人封裝好框架,另外的測試通過寫yaml測試用例即可實現接口自動化1.統一請求的封裝去除多余重復的代碼可跨py文件實現通過一個session來自動關聯有cookie的接口設置統一公共參數,統一文件處理,統一異常…

Vue 最佳實踐:如何利用唯一 key 值保證 el-table 動態渲染的穩定性

📋 問題描述 在Vue 2.0 ElementUI項目的偏置條件管理頁面中,每次切換到"內規拉偏"菜單時,表格樣式會發生崩潰,導致表格布局異常、列寬錯亂、固定列顯示不正確等問題。 🔍 問題分析 通過深入分析代碼&#x…

popen開啟進程,寫入數據

通過管道&#xff08;popen&#xff09;啟動 SDIWAN_WEB 進程并寫入 JSON 數據的過程可以分為以下步驟&#xff0c;結合代碼示例和關鍵注意事項進行說明&#xff1a;1. 核心代碼示例 #include <stdio.h> #include <json-c/json.h>int main() {// 1. 創建 JSON 對象…

計算機視覺的四項基本任務辨析

計算機視覺是使計算機能理解采集設備采集的圖像視頻的一門學科&#xff0c;目的是讓計算機實現人的視覺功能——對客觀世界的三維場景的感知、識別和理解。換句話說&#xff0c;要讓計算機具備通過二維圖像認識三維環境的能力。 目錄 三個階段 視覺層級 基本任務 技術難點…

iostat 系統IO監控命令學習

一、iostat 命令描述 “iostat”命令用于監測系統輸入/輸出設備的負載情況&#xff0c;其通過觀察設備處于活躍狀態的時間與平均傳輸速率之間的關系來實現這一目的。該命令會生成報告&#xff0c;這些報告可用于調整系統配置&#xff0c;以更好地平衡物理磁盤之間的輸入/輸出負…

jenkins使用ssh方式連接gitee 公鑰、私鑰配置、指紋

前言 Gitee 提供了基于 SSH 協議的 Git 服務&#xff0c;jenkins可使用ssh方式連接gitee&#xff0c;拉取代碼、提交tag等&#xff1b;使用ssh 連接&#xff0c;相比用戶名密碼方式&#xff0c;可省去因密碼變更而引起的jenkins關聯修改。 gitee生成、添加 SSH 公鑰 生成SSH…

如何在Android設備上刪除多個聯系人(3種方法)

如果您想清理安卓手機&#xff0c;或者只是想刪除舊的、不需要的聯系人&#xff0c;或者刪除多個聯系人&#xff0c;有三種有效的方法可供選擇。無論您是想手動刪除安卓手機上的聯系人&#xff0c;還是使用專用工具&#xff0c;都可以按照以下步驟操作。方法1&#xff1a;如何通…

Angular進階之十三:Angular全新控制流:革命性的模板語法升級

隨著Angular v17的發布&#xff0c;框架帶來了革命性的控制流語法&#xff0c;徹底改變了我們編寫模板的方式。這些改進不僅僅是語法糖——它們提升了性能、開發體驗和代碼可維護性。 為什么我們需要新的控制流&#xff1f; 在之前的Angular版本中&#xff0c;我們使用結構指令…

【Redis】string字符串

目錄 一.常見命令 1.1.SET 1.2.GET 1.3.MGET 1.4.MSET 1.5.SETNX 二.計數命令 2.1.INCR 2.2.INCRBY 2.3.DECR 2.4.DECYBY 2.5.INCRBYFLOAT 三 . 其他命令 3.1.APPEND 3.2.GETRANGE 3.3.SETRANGE 3.4.STRLEN 四. 字符串類型內部編碼 五. 典型使用場…

Nginx 學習

通過網盤分享的文件&#xff1a;Nginx 鏈接: https://pan.baidu.com/s/1dCc7FoND90H_x7rvRUXJqg 提取碼: yyds 通過網盤分享的文件&#xff1a;Tomcat 鏈接: https://pan.baidu.com/s/1nj_5j_66gS_YHUAX1C25jg 提取碼: yyds Nginx安裝、啟動 安裝依賴庫 #安裝C編譯器 yum insta…

Java、Android及計算機基礎面試題總結

1. String、StringBuffer、StringBuilder區別特性StringStringBufferStringBuilder可變性不可變可變可變線程安全是是(synchronized)否性能低(頻繁操作時)中等高場景字符串常量多線程字符串操作單線程字符串操作2. 接口和抽象類的區別特性接口(Interface)抽象類(Abstract Class…

數據集相關類代碼回顧理解 | sns.distplot\%matplotlib inline\sns.scatterplot

【PyTorch】單目標檢測項目 目錄 os.path.join sns.distplot adjust_brightness os.path.join fullPath2imgos.path.join(path2data,"Training400",prefix,imgName[id_]) 使用os.path.join函數&#xff0c;智能地處理不同操作系統中的路徑分隔符問題&#xff0…