当前位置: 首页 > article >正文

cocos creator使用jenkins打包流程,打包webmobile

windows电脑使用

如果你的电脑作为打包机,一定要锁定自己的ip,如果ip动态获取,可能后续会导致jenkins无法访问,还需要重新配置jenkins和http-server的端口

从jenkins官网下载windows版 Thank you for downloading Windows Stable installer
1.jenkins安装

比较关键需要注意的几步

(1)选择你电脑的账户和密码,这里一定要设置一下密码,选择有管理员权限的,如果选择第一个无密码的系统账户,可能会导致打包过程中cocos引擎的一些私密文件无法访问

(2)设置唯一的访问端口号,这个端口号是用来访问jenkins服务的,就是你要登录jenkins的地址端口

(3)jdk安装和路径选择,要选择jdk17-jdk21这几个版本,我这里用的jdk21,其他版本可能有问题

2.jenkins在windows电脑不能使用windows服务启动,打包报错,cocos的

error: TypeError: Cannot read property 'getParameter' of null

安装jenkins后,需要手动停止windows服务启动的jenkins,把服务改成手动,不自动

要使用命令行启动,也可以把命令行文件,加载windows的任务程序里,每次登录的时候启动,我这里每次启动jenkins的时候,还会启动打包之后的目录服务,方便访问打包后的链接,或者下载包体,安装http-server插件就可以把文件夹作为一个服务器(npm install http-server -g)

下面是启动代码,需要自己代码改成自己的jenkins 安装路径和jdk路径,还有端口,还有包体服务器路径

@echo off
setlocal enabledelayedexpansion:: ===== 配置 =====
set JENKINS_HOME=D:\Program Files\Jenkins
set JENKINS_WAR=%JENKINS_HOME%\jenkins.war
set JAVA_HOME=C:\Program Files\Java\jdk-21
set JENKINS_PORT=8866
set HTTP_PORT=8090
set DEPLOY_DIR=D:\buildPackage:: ===== 1. 终止旧进程 =====
taskkill /f /im java.exe /t >nul 2>&1
taskkill /f /im node.exe /t >nul 2>&1:: ===== 2. 启动http-server(前台) =====
echo [INFO] 启动 http-server...
start "HTTP Server" cmd /k "http-server "%DEPLOY_DIR%" -p %HTTP_PORT% -a 0.0.0.0 --log-format dev":: ===== 3. 启动Jenkins(前台) =====
echo [INFO] 启动 Jenkins...
start "Jenkins Server" cmd /k ""%JAVA_HOME%\bin\java" -jar "%JENKINS_WAR%" --httpPort=%JENKINS_PORT% --webroot="%JENKINS_HOME%\war"":: ===== 4. 保持窗口不退出 =====
echo [INFO] 两个服务已在前台窗口启动...
pause

第一次启动jenkins需要填入默认的密码key,密码在jenkins的安装路径下可以找到

3.登录jenkins 开始新建打包任务,我这里是使用的windows批处理代码,项目使用的是svn,选择Freestyle

可以在这里添加一些参数,用来控制打包动态控制

比如是否是debug模式

如果项目管理也是svn,就需要在jenkins的插件管理里,安装Subversion

然后就是要添加打包代码

下面代码(需要自己改下具体的安装路径和端口,还有打包生成路径 )如果没有配置转换需求,可以把下面代码中的CONFIG_PATH删除,删除步骤2,直接进行3构建

@echo off
:: 设置控制台代码页为 UTF-8
chcp 65001 > nul:: 设置命令行字体(需要支持 Unicode 的字体如 Consolas)
reg add "HKCU\Console" /v "FaceName" /t REG_SZ /d "Consolas" /f
reg add "HKCU\Console" /v "CodePage" /t REG_DWORD /d 65001 /f:: 设置本地环境支持 Unicode
setlocal enableextensions enabledelayedexpansion
set PYTHONIOENCODING=utf-8
set LANG=zh_CN.UTF-8:: 设置路径变量
set COCOS_PATH="C:\ProgramData\cocos\editors\Creator\2.4.11\CocosCreator.exe"
set PROJECT_PATH=%WORKSPACE%\client\proj
set CONFIG_PATH=%WORKSPACE%\design\config
set WEB_PORT=8090
set BUILD_PLATFORM=web-mobile
set DEPLOY_ROOT="D:\buildPackage\webMobile":: ========== 使用Jenkins构建号作为版本 ==========
set VERSION=build-%BUILD_NUMBER%:: ========== 1. 清理缓存 ==========
echo [STEP 1] 清理缓存...
rmdir /s /q "%PROJECT_PATH%\library"
rmdir /s /q "%PROJECT_PATH%\temp":: ========== 2. 执行配置转换批处理文件========== 
echo [STEP 2] 执行配置转换...如果没有需求的,可以删除这里的代码,直接执行下面的3构建 
:: 强制切换到脚本所在目录,直接执行python会有找不到xls文档的报错,可能是python代码内部路径识别的问题
cd /d "%CONFIG_PATH%"
call "win_out.bat"
if %errorlevel% neq 0 (echo 错误:配置转换失败exit /b 1
):: ========== 3. Cocos Creator构建========== 
echo [STEP 3] 开始Cocos Creator构建...
cocosCreator --path "%PROJECT_PATH%" --build "platform=%BUILD_PLATFORM%;md5Cache=true;debug=%isDebug%"
if %errorlevel% neq 0 (echo 错误:Cocos构建失败exit /b 1
)
:: ========== 4. 版本化部署 ==========
set DEPLOY_DIR=%DEPLOY_ROOT%\builds\!VERSION!
mkdir "%DEPLOY_DIR%" >nul 2>&1
::========= 4.1 复制构建文件 ==========
robocopy "%PROJECT_PATH%\build\%BUILD_PLATFORM%" "%DEPLOY_DIR%" /MIR /NP /NFL /NDL:: 更新latest符号链接
rmdir /q /s "%DEPLOY_ROOT%\latest" 2>nul
mklink /J "%DEPLOY_ROOT%\latest" "%DEPLOY_DIR%":: ========== 5. 记录版本信息 ==========
echo {
echo    "current": "!VERSION!",
echo    "time": "%DATE% %TIME%",
echo    "versions": [
for /d %%i in ("%DEPLOY_ROOT%\builds\*") do (set V=%%~nxiecho     { "version": "!V!", "path": "/builds/!V!/index.html" },
)
echo    ]
echo } > "%DEPLOY_ROOT%\versions.json":: ========== 6. 生成访问链接 ==========
for /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr "IPv4"') do (for /f "tokens=*" %%j in ("%%i") do set IP=%%j
)
set IP=%IP: =%
set ACCESS_URL=http://!IP!:%WEB_PORT%/webMobile/builds/!VERSION!/index.html
set LATEST_URL=http://!IP!:%WEB_PORT%/webMobile/latest/index.html:: 记录版本信息
echo { "version": "!VERSION!", "time": "%DATE% %TIME%", "url": "!ACCESS_URL!" } > "%DEPLOY_ROOT%\current.json":: ========== 7. 输出结果 ==========
echo [SUCCESS] 部署完成
echo 版本专属链接: !ACCESS_URL!
echo 最新版链接: !LATEST_URL!:: ========== 8. 删除旧的多余的包 ==========
:: 保留最近20个构建
set KEEP_BUILDS=20  :: 删除旧版本(保留最新的KEEP_BUILD20个)
for /f "skip=%KEEP_BUILDS% delims=" %%i in ('dir %DEPLOY_ROOT%\builds /AD /B /O-N 2^>nul') do (rmdir /s /q "%DEPLOY_ROOT%\builds\%%i"
):: 更新版本清单
dir %DEPLOY_ROOT%\builds /AD /B /O-N > %DEPLOY_ROOT%\versions.jsonendlocal

如果路径中有空格的,比如 set DEPLOY_ROOT=D:\build Package\webMobile,就不能这样写了

要引起来  set DEPLOY_ROOT="D:\build Package\webMobile",否则会有找不到路径的错

下面介绍我这里的一些具体路径,

1.我们创建的打包任务,都在jenkins安装路径下的workspace下 

例如 build H5就是我创建的打包任务,这里面是svn拉下来的项目

2.buildPackage是我启动的http-server服务的路径,这里是打包后的内容放的位置,还有版本管理,最多保留20条最近打包的包体

相关文章:

cocos creator使用jenkins打包流程,打包webmobile

windows电脑使用 如果你的电脑作为打包机,一定要锁定自己的ip,如果ip动态获取,可能后续会导致jenkins无法访问,还需要重新配置jenkins和http-server的端口 从jenkins官网下载windows版 Thank you for downloading Windows Stable installer 1.jenkins安…...

自动驾驶(ADAS)领域常用数据集介绍

1. KITTI 数据集 简介:由德国卡尔斯鲁厄理工学院与丰田研究院联合创建,是自动驾驶领域最经典的评测基准,涵盖立体视觉、光流、3D检测等任务。包含市区、乡村和高速公路场景的真实数据,标注对象包括车辆、行人等,支持多…...

C++ 部署的性能优化方法

一、使用结构体提前存放常用变量 在编写前后处理函数时,通常会多次用到一些变量,比如模型输入 tensor 的 shape,count 等等,若在每个处理函数中都重复计算一次,会增加部署时的计算量。对于这种情况,可以考…...

关于IDEA的循环依赖问题

bug描述:(java: 模块循环不支持注解处理。请确保将循环 [...] 中的所有模块排除在注解处理之外) 解决方法:...

如何在idea中写spark程序

在 IntelliJ IDEA 中编写 Spark 程序,可按以下步骤进行: 1. 创建新项目 打开 IntelliJ IDEA,选择File -> New -> Project。在左侧面板选择Maven或者Gradle(这里以 Maven 为例),确保Project SDK选择…...

RAG工程-基于LangChain 实现 Advanced RAG(预检索优化)

Advanced RAG 概述 Advanced RAG 被誉为 RAG 的第二范式,它是在 Naive RAG 基础上发展起来的检索增强生成架构,旨在解决 Naive RAG 存在的一些问题,如召回率低、组装 prompt 时的冗余和重复以及灵活性不足等。它重点聚焦在检索增强&#xff0…...

关于常量指针和指向常量的指针

关于指针,对于常量指针和指向常量的指针也是傻傻分不清。看到定义时,不知道是指针不能变,还是指针指向的内容不能变量。 先看形式: const char * A; char * const B; 这两种有什么区别?傻傻分不清。 A这种定义&am…...

《Masked Autoencoders Are Scalable Vision Learners》---CV版的BERT

目录 一、与之前阅读文章的关系? 二、标题:带掩码的自auto编码器是一个可拓展的视觉学习器 三、摘要 四、核心图 五、结果图 六、不同mask比例对比图 七、“Introduction” (He 等, 2021, p. 1) 引言 八、“Related Work” (He 等, 2021, p. 3)相…...

高压直流输电MATLAB/simulink仿真模型+说明文档

1.模型简介 本仿真模型基于MATLAB/Simulink(版本MATLAB 2018Ra)软件。建议采用matlab2018 Ra及以上版本打开。(若需要其他版本可联系代为转换) 使用一个传输功率为1000MW(500 kV,2 kA)直流互连…...

locust压力测试

安装 pip install locust验证是否安装成功 locust -V使用 网上的教程基本上是前几年的,locust已经更新了好几个版本,有点过时了,在此做一个总结 启动 默认是使用浏览器进行设置的 # 使用浏览器 locust -f .\main.py其他参数 Usage: locust […...

python 线程池顺序执行

在Python中,线程池(ThreadPoolExecutor)默认是并发执行任务的,但若需要实现任务的顺序执行(按提交顺序执行或按结果顺序处理),可以通过以下方案实现: 方案一:强制单线程&…...

第十二届蓝桥杯 2021 C/C++组 空间

目录 题目: 题目描述: 题目链接: 思路: 思路详解: 代码: 代码详解: 题目: 题目描述: 题目链接: 空间 - 蓝桥云课 思路: 思路详解&#…...

以太网的mac帧格式

一.以太网的mac帧 帧的要求 1.长度 2.物理层...

前端如何使用Mock模拟数据实现前后端并行开发,提升项目整体效率

1. 安装 Mock.js npm install mockjs --save-dev # 或使用 CDN <script src"https://cdn.bootcdn.net/ajax/libs/Mock.js/1.0.0/mock-min.js"></script>2. 创建 Mock 数据文件 在项目中新建 mock 目录&#xff0c;创建 mock.js 文件&#xff1a; // m…...

【hadoop】HBase shell 操作

1.创建course表 hbase(main):002:0> create course,cf 2.查看HBase所有表 hbase(main):003:0> list 3.查看course表结构 hbase(main):004:0> describe course 4.向course表插入数据 hbase(main):005:0> put course,001,cf:cname,hbase hbase(main):006:0> …...

如何使用 Redis 缓存验证码

目录 &#x1f9e0; Redis 缓存验证码的工作原理 &#x1f9f0; 实现流程 1. 安装 Redis 和 Python 客户端 2. 生成并缓存验证码 示例代码&#xff1a;生成并存储验证码 3. 发送验证码&#xff08;以短信为例&#xff09; 4. 校验验证码 示例代码&#xff1a;校验验证码…...

深度学习---框架流程

核心六步 一、数据准备 二、模型构建 三、模型训练 四、模型验证 五、模型优化 六、模型推理 一、数据准备&#xff1a;深度学习的基石 数据是模型的“燃料”&#xff0c;其质量直接决定模型上限。核心步骤包括&#xff1a; 1. 数据收集与标注 来源&#xff1a;公开数据集…...

业绩回暖、股价承压,三只松鼠赴港上市能否重构价值锚点?

在营收重返百亿俱乐部后&#xff0c;三只松鼠再度向资本市场发起冲击。 4月25日&#xff0c;这家坚果零食巨头正式向港交所递交上市申请书&#xff0c;若成功登陆港股&#xff0c;将成为国内首个实现“AH”双上市的零食品牌。 其赴港背后的支撑力&#xff0c;显然来自近期披露…...

JAVA-StringBuilder使用方法

JAVA-StringBuilder使用方法 常用方法 append(Object obj) 追加内容到末尾 sb.append(" World"); insert(int offset, Object obj) 在指定位置插入内容 sb.insert(5, “Java”); delete(int start, int end) 删除指定范围的字符 sb.delete(0, 5); replace(int start…...

【Python】Matplotlib:立体永生花绘制

本文代码部分实现参考自CSDN博客&#xff1a;https://blog.csdn.net/ak_bingbing/article/details/135852038 一、引言 Matplotlib作为Python生态中最著名的可视化库&#xff0c;其三维绘图功能可以创造出令人惊叹的数学艺术。本文将通过一个独特的参数方程&#xff0c;结合极…...

Unity AI-使用Ollama本地大语言模型运行框架运行本地Deepseek等模型实现聊天对话(一)

一、Ollama介绍 官方网页&#xff1a;Ollama官方网址 中文文档参考&#xff1a;Ollama中文文档 相关教程&#xff1a;Ollama教程 Ollama 是一个开源的工具&#xff0c;旨在简化大型语言模型&#xff08;LLM&#xff09;在本地计算机上的运行和管理。它允许用户无需复杂的配置…...

terraform使用vault动态管多理云账号AK/SK

为了使用 Terraform 和 HashiCorp Vault 动态管理多个云账号的 Access Key (AK) 和 Secret Key (SK)&#xff0c;可以按照以下步骤实现安全、自动化的凭证管理&#xff1a; 一、架构概述 核心组件&#xff1a; Vault&#xff1a;存储或动态生成云账号的 AK/SK&#xff0c;提供…...

SAP /SDF/SMON配置错误会导致HANA OOM以及Disk Full的情况

一般来说&#xff0c;为了保障每日信息收集&#xff0c;每个企业都会配置/SDF/SMON的监控。这样在出现性能问题时&#xff0c;可以通过收集到的snapshot进行分析检查。如果/SDF/SMON在配置时选取了过多的记录项&#xff0c;或者选择了过低的时间间隔[Interval in seconds],那显…...

CMU和苹果公司合作研究机器人长序列操作任务,提出ManipGen

我们今天来介绍一项完成Long-horizon任务的一项新的技术&#xff1a;ManipGen。 什么叫Long-horizon&#xff1f;就是任务比较长。说到底&#xff0c;也是任务比较复杂。 那么这个技术就给我们提供了一个非常好的解决这类问题的思路&#xff0c;同时&#xff0c;也取得了不错的…...

大模型(LLMs)强化学习—— PPO

一、大语言模型RLHF中的PPO主要分哪些步骤&#xff1f; 二、举例描述一下 大语言模型的RLHF&#xff1f; 三、大语言模型RLHF 采样篇 什么是 PPO 中 采样过程&#xff1f;介绍一下 PPO 中 采样策略&#xff1f;PPO 中 采样策略中&#xff0c;如何评估“收益”&#xff1f; …...

[Python开发] 如何用 VSCode 编写和管理 Python 项目(从 PyCharm 转向)

在 Python 开发领域,PyCharm 一直是广受欢迎的 IDE,但其远程开发功能(如远程 SSH 调试)仅在付费版中提供。为了适应服务器部署需求,很多开发者开始将目光转向更加轻量、灵活且免费扩展能力强的 VSCode。本篇文章将详细介绍,从 PyCharm 转向 VSCode 后,如何高效搭建和管理…...

Maven多模块工程版本管理:flatten-maven-plugin扁平化POM

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

视频汇聚平台EasyCVR赋能高清网络摄像机:打造高性价比视频监控系统

在现代视频监控系统中&#xff0c;高清网络摄像机作为核心设备&#xff0c;其性能和配置直接影响监控效果和整体系统的价值。本文将结合EasyCVR视频监控的功能&#xff0c;探讨如何在满足使用需求的同时&#xff0c;优化监控系统的设计&#xff0c;降低项目成本&#xff0c;并提…...

Unity 接入阿里的全模态大模型Qwen2.5-Omni

1 参考 根据B站up主阴沉的怪咖 开源的项目的基础上修改接入 AI二次元老婆开源项目地址(unity-AI-Chat-Toolkit): Github地址&#xff1a;https://github.com/zhangliwei7758/unity-AI-Chat-Toolkit Gitee地址&#xff1a;https://gitee.com/DammonSpace/unity-ai-chat-too…...

Nginx知识点

Nginx发展历史 Nginx 是由俄罗斯程序员 Igor Sysoev 开发的高性能开源 Web 服务器、反向代理服务器和负载均衡器 &#xff0c;其历史如下&#xff1a; 起源与早期开发&#xff08;2002 - 2004 年&#xff09; 2002 年&#xff0c;当时 Igor Sysoev 在为俄罗斯门户网站 Rambl…...