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

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条最近打包的包体


http://www.mrgr.cn/news/100502.html

相关文章:

  • Python3:Jupyter Notebook 安装和配置
  • Crawl4AI 部署安装及 n8n 调用,实现自动化工作流(保证好使)
  • 【视频生成模型】通义万相Wan2.1模型本地部署和LoRA微调
  • 在 Cursor 中 配置 GitHub MCP Server
  • 【3DMax脚本MaxScript开发:创建高效模型虚拟体绑定和材质管理系统,从3DMax到Unreal和Unity引擎_系列第一篇】
  • 【RabbitMQ消息队列】详解(一)
  • 从视频中学习:从Humanoid-X、UH-1的自动打字幕,到首个人形VLA Humanoid-VLA(自监督数据增强且整合第一人称视角)
  • WPF常用技巧汇总 - Part 2
  • DeepSeek 多头潜在注意力(Multi-Head Latent Attention, MLA)技术
  • STM32F103_HAL库+寄存器学习笔记21 - CAN接收过滤器:CPU减负神器,提升系统效率的第一道防线
  • Drivestduio 代码笔记与理解
  • 论文检索相关网站
  • 大模型API密钥的环境变量配置(大模型API KEY管理)(将密钥存储在环境变量)(python-dotenv)(密钥管理)环境变量设置环境变量
  • 新能源汽车运动控制器核心芯片选型与优化:MCU、DCDC与CANFD协同设计
  • T检验、F检验及样本容量计算学习总结
  • Simulink与C的联合仿真调试
  • Servlet (简单的servlet的hello world程序)
  • 小白自学python第一天
  • 鸿蒙NEXT开发正则工具类RegexUtil(ArkTs)
  • 数据库3,