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

cocos creator使用jenkins打包微信小游戏,自动上传资源到cdn,windows版运行jenkins

cocos 版本2.4.11

在windows上jenkins的具体配置和部署,可参考上一篇文章cocos creator使用jenkins打包流程,打包webmobile_jenkins打包,发布,部署cocoscreator-CSDN博客

特别注意,windows上运行jenkins需要关闭windows自己的jenkins服务,需要手动使用命令行启动jenkins服务,否则打包的时候会有cocos报错,上面的文章中有提到

这里直接从新建jenkins构建任务开始

1.新建item,选择自由风格,起个名字,这里是build Wechat

2.配置参数,分别配置

cdn的桶中的文件夹路径:

下面是我的cdn地址,前面是桶,后面是具体路径,这里只配置在桶中的路径,不包含桶

还有是否上传cdn:不上传就是完整的包,选择上传就会自动上传remote文件夹到cdn,让然后删除包中的remote文件夹,

还有是否清理缓存:一般可以不清理工程的temp和libaray,这里清理是为了防止缓存的资源和实际的不一致,清理后可重新生成

3.配置代码的svn路径和用户名校验,我这里工程师svn,也可以选择git,需要在jenkins插件中安装svn这里才能配置

4.具体的打包流程批处理命令

(1)需要在电脑上先安装coscli,用于上传到cdn的工具,具体安装和配置可看官网对象存储 下载与安装配置_腾讯云

(2)要下载压缩工具,我这里是7Z,用于压缩最终包,供下载

重点解释

1.需要修成自己对应的路径(cocos安装路径,cocos项目具体路径,打包类型,打包后保存路径,访问打包结果的服务端口,cdn的桶,资源服务器地址

set COCOS_PATH="C:\ProgramData\cocos\editors\Creator\2.4.11\CocosCreator.exe"

set PROJECT_PATH=%WORKSPACE%\client\proj

set BUILD_PLATFORM=wechatgame

set DEPLOY_ROOT="D:\buildPackage\wechatgame"

set WEB_PORT=8090

set COS_BUCKET="cos://gsr-cdn-125......."

set "REMOTE_SERVER=https://gsr-cdn.xxxxxx.com%ResServerPath%"

ResServerPath:是上面jenkins中配置的路径变量

2.这里的大致就是,把项目配置中的settings/wechatgame.json中的资源服务器地址,替换成我们配置的,等打完包后,再重置回来,防止下次更新产生冲突

3.因为coscli放在C:\Users\Admin下,这里如果要上传cdn,需要进入admin目录下,如果配置的cnd上的资源版本路径 例如 A/B,则会自动创建B文件夹,并在B文件夹下创建remote文件夹,然后把打包后的remote中的文件,传上来,B文件夹前面的路径需要自己提前创建好,上传后移除项目包体中的remote文件夹,自己也可以选择备份

4.这里就是压缩构建好的包体,生成下载链接和版本信息,保存打包记录中的最新的20个包,具体可自己修改要保存多少个历史包体,我是用http-server启动的包体访问服务

5.我是windows任务,每次开机的时候启动访问服务,启动jenkins,在上一个文章打包webmobile中提到过,有具体代码,

下面是具体的批处理打包代码

@echo off
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\gamexiuxianv7
set BUILD_PLATFORM=wechatgame
set DEPLOY_ROOT="D:\buildPackage\wechatgame"
set WEB_PORT=8090
set COS_BUCKET="cos://gsr-cdn-125.......":: ========== 1. 清理环境 ==========
if "%CleanUpCache%"=="true" (echo [STEP 1] 清理缓存...rmdir /s /q "%PROJECT_PATH%\library"rmdir /s /q "%PROJECT_PATH%\temp"
):: ========== 2. 微信小游戏构建 ==========
echo [STEP 3] 构建微信小游戏(启用分包)...
:: 构建修改 wechatgame.json 把cdn地址替换成配置的最新地址
set "SETTINGS_FILE=%PROJECT_PATH%\settings\wechatgame.json"
set "REMOTE_SERVER=https://gsr-cdn.xxxxxx.com%ResServerPath%"
set "BACKUP_FILE=%SETTINGS_FILE%.bak":: 步骤1:备份原始文件 wechatgame.json
copy "%SETTINGS_FILE%" "%BACKUP_FILE%""
powershell -Command "$json = Get-Content '%SETTINGS_FILE%' | ConvertFrom-Json; $json.REMOTE_SERVER_ROOT = '%REMOTE_SERVER%'; $json | ConvertTo-Json -Depth 100 | Set-Content '%SETTINGS_FILE%'"echo 已更新 REMOTE_SERVER_ROOT 为: %REMOTE_SERVER%
%COCOS_PATH% --path "%PROJECT_PATH%" --build "platform=%BUILD_PLATFORM%;"if %errorlevel% neq 0 (echo 错误:Cocos构建失败exit /b 1
)
echo 正在恢复原始配置文件...wechatgame.json
move /y "%BACKUP_FILE%" "%SETTINGS_FILE%":: ========== 3. 上传到COS ==========
echo [STEP 5] 上传到腾讯云COS...
:: 检查是否上传CDN
if "%isUploadCDN%"=="true" (cd /d "C:\Users\Admin":: 创建文件夹标记echo Creating folder markers...coscli cp NUL "%COS_BUCKET%%ResServerPath%/.keep"if %ERRORLEVEL% neq 0 (echo [ERROR] Failed to create folder marker!exit /b 1)echo [SUCCESS] Folder marker created successfully!:: 创建remote文件夹标记coscli cp NUL "%COS_BUCKET%%ResServerPath%/remote/.keep"if %ERRORLEVEL% neq 0 (echo [ERROR] Failed to create remote folder marker!exit /b 1)echo [SUCCESS] Remote folder marker created successfully!:: 上传remote文件夹内容echo Uploading remote folder...coscli cp "%PROJECT_PATH%\build\%BUILD_PLATFORM%\remote" "%COS_BUCKET%%ResServerPath%/remote" -rif %ERRORLEVEL% neq 0 (echo [ERROR] Upload failed!exit /b %ERRORLEVEL%)echo [SUCCESS] Upload completed!:: 执行后续操作移除remote文件夹rmdir /s /q "%PROJECT_PATH%\build\%BUILD_PLATFORM%\remote"
)set VERSION=build-%BUILD_NUMBER%
set BUILD_DIR=%PROJECT_PATH%\build\%BUILD_PLATFORM%
set ZIP_FILE=%DEPLOY_ROOT%\builds\%VERSION%.zipecho [STEP 6] 压缩构建产物...
"D:\Program Files\7-Zip\7z.exe" a -tzip "%ZIP_FILE%" "%BUILD_DIR%\*" -mx9:: ========== 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%/wechatgame/builds/%VERSION%.zipecho [STEP 7] 生成版本信息...
echo { "version": "!VERSION!", "time": "%DATE% %TIME%", "url": "!ACCESS_URL!" } > "%DEPLOY_ROOT%\current.json"
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!" },
)
echo    ]
echo } > "%DEPLOY_ROOT%\versions.json"
:: 更新版本清单
dir %DEPLOY_ROOT%\builds /AD /B /O-N > %DEPLOY_ROOT%\versions.json:: ========== 8. 清理旧版本 ==========
echo [STEP 7] 清理旧构建...
set KEEP_BUILDS=20
for /f "skip=%KEEP_BUILDS% delims=" %%i in ('dir /b /o-d /ad "%DEPLOY_ROOT%\builds\build_*" 2^>nul') do (rmdir /s /q "%DEPLOY_ROOT%\builds\%%i"
):: ========== 9. 输出结果 ==========
echo [SUCCESS] 构建上传完成
echo 包下载链接: %ACCESS_URL%

下面是我的打包历史存储

最终下载打好的包,使用微信开发者工具手动上传即可,如果打包选择不上传cdn,那包体中会包含remote,是一个完整的包体,包体太大微信开发者工具是传不上去的

扩展:如果对打包后有特殊批处理,可自己添加,例如我这里打包后需要移动一些文件和压缩图片,

相关文章:

cocos creator使用jenkins打包微信小游戏,自动上传资源到cdn,windows版运行jenkins

cocos 版本2.4.11 在windows上jenkins的具体配置和部署,可参考上一篇文章cocos creator使用jenkins打包流程,打包webmobile_jenkins打包,发布,部署cocoscreator-CSDN博客 特别注意,windows上运行jenkins需要关闭windows自己的jenkins服务&a…...

定时器的两种实现方式

1、基于优先级队列/堆 队列是先进先出,优先级队列是优先级越高就存放在队列之前,我们可以将过期时间越早设置为优先级越高,那么临近过期时间的任务就会在队列前面,距离过期时间越晚的任务就在队列后面。 可以分配一个线程&#…...

Python、Pytorch、TensorFlow、Anconda、PySide、Jupyter

一、Python Python是一种高级、通用、解释型的开源编程语言,由Guido van Rossum于1990年代初设计。它具有以下显著特点: 1‌.语言特性‌ (1) 语法简洁易读,接近自然语言(如print(“Hello World!”)) (2) 采用强制缩进而非大括号定义代码块 (3) 支持面向对象、函数式和过…...

[Java实战]Spring Boot整合MinIO:分布式文件存储与管理实战(三十)

[Java实战]Spring Boot整合MinIO:分布式文件存储与管理实战(三十) 一、MinIO简介与核心原理 MinIO 是一款高性能、开源的分布式对象存储系统,兼容 Amazon S3 API,适用于存储图片、视频、日志等非结构化数据。其核心特…...

MacBook Air A2179(Intel版)安装macOS Catalina所需时间

MacBook Air A2179(Intel版)安装macOS Catalina所需时间如下: 一、标准安装时间范围 常规安装(通过App Store) • 下载时间:约30-60分钟(取决于网络速度,安装包约8GB) •…...

AI在人力资源领域的应用:把握时代浪潮

借鉴历史经验,引领技术变革 历史总是呈现出惊人的相似性。十年前,众多企业未能及时洞察移动技术与社交技术的潜在价值,迟迟没有将这些创新引入职场环境。随着时间推移,这些组织才意识到BYOD(自带设备办公)…...

【VxWorks 实时操作系统(RTOS)】常用函数汇总

VxWorks 实时操作系统(RTOS)中的核心函数 1. taskSpawn 函数 功能:用于动态创建并激活一个新任务(线程)。参数解析(以 VxWorks 为例):int taskSpawn(char *name, // 任务名…...

vr制作公司提供什么服务?

随着科技的迅猛进步,虚拟现实(Virtual Reality,简称VR)技术已经悄然渗透到我们的日常生活与工作中,成为推动数字化转型的重要力量。VR制作公司,作为前沿领域的探索者和实践者,以专业的技术和创新…...

下一代电子电气架构(EEA)的关键技术

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...

matlab慕课学习3.5

于20250520 3.5 用while 语句实现循环结构 3.5.1while语句 多用于循环次数不确定的情况,循环次数确定的时候用for更为方便。 3.5.2break语句和continue语句 break用来跳出循环体,结束整个循环。 continue用来结束本次循环,接着执行下一次…...

大语言模型(LLM)如何通过“思考时间”(即推理时的计算资源)提升推理能力

大语言模型(LLM)如何通过“思考时间”(即推理时的计算资源)提升推理能力 核心围绕人类思维机制、模型架构改进、训练方法优化等展开 一、人类思维的启发:快思考与慢思考 类比心理学: 人类思维分两种模式: 快思考(系统1):直觉驱动,快速但易出错(如估算简单问题)。…...

Ollama 如何在显存资源有限的情况下合理分配给不同的服务?

在 Windows PowerShell 中启动两个 Ollama 实例的推荐步骤是: 打开第一个 PowerShell 窗口,并执行: $env:OLLAMA_HOST"0.0.0.0:11434" ollama serve打开第二个 PowerShell 窗口,并执行: $env:OLLAMA_HOST&qu…...

Qt音视频开发过程中一个疑难杂症的解决方法/ffmpeg中采集本地音频设备无法触发超时回调

一、前言 最近在做实时音视频通话的项目中,遇到一个神奇的问题,那就是用ffmpeg采集本地音频设备,当音频设备拔掉后,采集过程会卡死在av_read_frame函数中,尽管设置了超时时间,也设置了超时回调interrupt_c…...

基于注意力机制与iRMB模块的YOLOv11改进模型—高效轻量目标检测新范式

随着深度学习技术的发展,目标检测在自动驾驶、智能监控、工业质检等场景中得到了广泛应用。针对当前主流目标检测模型在边缘设备部署中所面临的计算资源受限和推理效率瓶颈问题,YOLO系列作为单阶段目标检测框架的代表,凭借其高精度与高速度的平衡优势,在工业界具有极高的应…...

PEFT库PromptTuningConfig 配置

PEFT库 PromptTuningConfig 配置 "Prompt Tuning"的参数高效微调 PromptTuningConfig 核心参数解析 1. task_type="CAUSAL_LM" 作用:指定任务类型为因果语言模型(Causal LM)。说明:因果语言模型从左到右生成文本(如GPT系列),这与任务需求匹配(模…...

操作系统----软考中级软件工程师(自用学习笔记)

目录 1、计算机系统层次结构 2、程序顺序执行的特征 3、程序并发执行的特征 4、三态模型 5、同步与互斥 6、信号量机制 7、PV操作 8、死锁 9、进程资源图 10、死锁避免 11、线程 12、程序局部性原理 13、分页存储管理 14、单缓冲器 15、双缓冲区 16、磁盘调度算…...

SQL 多表关联与分组聚合:解密答题正确率分析

一、问题拆解:从业务需求到SQL逻辑 1.1 需求分析 题目要求:计算浙江大学用户在不同难度题目下的答题正确率,并按正确率升序排序。 关键分析点: 数据来源: user_profile:存储用户信息(大学&a…...

基于 Redis 实现短信验证码登录功能的完整方案

&#x1f9f1; 一、技术栈与依赖配置 使用 Spring Boot Redis 实现短信验证码登录&#xff0c;以下是推荐的 Maven 依赖&#xff1a; <dependencies><!-- Spring Boot Web --><dependency><groupId>org.springframework.boot</groupId><ar…...

电平匹配电路

1、为什么要电平匹配? 现在很多SOC器件为了降低功耗,都把IO口的电平设计成了1.8V,核电压0.85V,当这种SOC做主平台时,在做接口设计需要格外关注电平的匹配。单板中经常需要将1.8V的电平转换成3.3V或者转成5V。如果没有注意到输入和输出信号之间的电平匹配,系统就无法正常…...

JavaScript 日志和调试工具箱-logger2js

原创功能丰富的 JavaScript 日志和调试工具箱&#xff0c;设计这个工具时考虑到了多种实际开发中的需求。该工具不仅提供了高效强大的日志输出显示功能&#xff0c;还包含了界面风格配置、代码格式化、事件处理、性能测试、方法调用栈输出&#xff0c;右键菜单、控制台显示控制…...

GitHub 自动认证教程

## 简介 在使用 GitHub 时&#xff0c;为了避免每次提交代码都需要输入用户名和密码&#xff0c;我们可以使用 SSH 密钥进行自动认证。本教程将详细介绍如何设置 SSH 密钥并配置 GitHub 自动认证。 ## 步骤一&#xff1a;检查现有 SSH 密钥 首先&#xff0c;检查您的电脑是否…...

zData X zStorage 为什么采用全闪存架构而非混闪架构?

点击蓝字 关注我们 最近有用户问到 zData X 的存储底座 zStorage 分布式存储为什么采用的是全闪存架构而非混闪架构&#xff1f;主要原因还是在于全闪存架构在性能和可靠性方面具有更显著的优势。zData X 的上一代产品 zData 的早期版本也使用了SSD盘作为缓存的技术架构&#x…...

鸿蒙OSUniApp 实现精美的轮播图组件#三方框架 #Uniapp

UniApp 实现精美的轮播图组件 在移动应用开发中&#xff0c;轮播图是一个非常常见且重要的UI组件。本文将深入探讨如何使用UniApp框架开发一个功能丰富、动画流畅的轮播图组件&#xff0c;并分享一些实际开发中的经验和技巧。 一、基础轮播图实现 1.1 组件结构设计 首先&am…...

解决git中断显示中文为八进制编码问题

git config --global core.quotepath false 命令用于配置 Git 如何处理非 ASCII 字符&#xff08;如中文、日文、韩文等&#xff09;的文件名显示 core.quotepath Git 的一个核心配置项&#xff0c;控制是否对非 ASCII 文件名进行转义&#xff08;quote&#xff09;处理。 f…...

SQL次日留存率计算精讲:自连接与多字段去重的深度应用

一、问题拆解&#xff1a;理解次日留存率的计算逻辑 1.1 业务需求转换 题目&#xff1a;运营希望查看用户在某天刷题后第二天还会再来刷题的留存率。 关键分析点&#xff1a; 留存率 &#xff08;第一天刷题且第二天再次刷题的用户数&#xff09; / 第一天刷题的总用户数需…...

使用SQLite Studio导出/导入SQL修复损坏的数据库

使用SQLite Studio导出/导入SQL修复损坏的数据库 使用Zotero时遇到了数据库损坏&#xff0c;在软件中寸步难行&#xff0c;遂尝试修复数据库。 一、SQLite Studio简介 SQLite Studio是一款专为SQLite数据库设计的免费开源工具&#xff0c;支持Windows/macOS/Linux。相较于其…...

LSTM-Attention混合模型:美债危机与黄金对冲效率研究

摘要&#xff1a;本文依托多维度量化分析框架&#xff0c;结合自然语言处理&#xff08;NLP&#xff09;技术对地缘文本的情绪挖掘&#xff0c;构建包含宏观因子、风险溢价因子及技术面因子的三阶定价模型&#xff0c;对当前黄金市场的波动特征进行归因分析。实证结果显示&…...

了解 DDD 吗?DDD 和 MVC 的区别是什么?

简介&#xff1a; DDD&#xff08;Domain-driven Design&#xff09; 和 MVC&#xff08;Model-View-Controller&#xff09; 是软件后台开发两种流行的分层架构思想。 MVC 是一种设计模式&#xff0c;主要用来分离用户界面&#xff0c;业务逻辑&#xff0c;和数据模型。 而…...

Unity3D仿星露谷物语开发46之种植/砍伐橡树

1、目标 种植一棵橡树&#xff0c;从种子变成大树。 然后可以使用斧头砍伐橡树。 2、删除totalGrowthDays字段 修改growthDays的含义&#xff0c;定义每个值为到达当前阶段的累加天数。此时最后一个阶段就是totalGrowthDays的含义。所以就可以删除totalGrowthDays字段。 &…...

STM32外设应用详解——从基础到高级应用的全面指南

目录 一、引言&#xff1a;为何选择STM32外设 二、主要外设类别与详细应用解析 1. GPIO&#xff08;通用输入输出&#xff09; 工作原理详解 高级应用设计 硬件连接建议 2. 定时器&#xff08;TIM&#xff09;详解 基本定时器原理 高级配置 实际应用 核心技巧 3. A…...