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

news2025/7/15 14:23:36

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=%%~nxi
    echo     { "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.json

endlocal

如果路径中有空格的,比如 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条最近打包的包体

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2348171.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

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

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

关于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…

《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 […

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

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

以太网的mac帧格式

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

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

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

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博客:https://blog.csdn.net/ak_bingbing/article/details/135852038 一、引言 Matplotlib作为Python生态中最著名的可视化库,其三维绘图功能可以创造出令人惊叹的数学艺术。本文将通过一个独特的参数方程,结合极…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Nginx知识点

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