GDevelop 官方版本发布流程:更新版本号、等待 CI 构建并上传发布产物
【免费下载链接】GDevelop🎮 Open-source, cross-platform 2D/3D/multiplayer game engine designed for everyone.项目地址: https://gitcode.com/GitHub_Trending/gd/GDevelop
本文面向需要发布 GDevelop 官方桌面版(Electron 版 IDE)的维护者。完整流程是:在newIDE/electron-app/app/package.json中更新版本号并合并到master,等待 CI 为三个平台的构建产物就绪,用仓库自带的下载脚本把产物取到本地,最后上传到新建的 GitHub release。该流程记录在 newIDE/README.md 的 "Building and deploying the standalone app" 一节,其中明确说明:这一节只适用于要把"官方应用"部署到 GDevelop 网站的维护者,普通贡献者不需要走这条路径。
准备工作:本地需要 GDevelop 源代码仓库、Git 和 Node.js(安装说明见 newIDE/README.md 的 Installation 一节)。构建与发布行为全部由 CI 完成,本地机器不需要安装 Emscripten、代码签名工具等依赖。
更新版本号并合并到 master
CI 为master分支的每次提交自动构建新版本(见 newIDE/docs/Nightly-Builds-and-continuous-deployment.md),所以发布版本的版本号必须先落到master上。
- 修改 newIDE/electron-app/app/package.json 中的
version字段。仓库当前值为5.6.281,发布新版本时把第三位改为你的目标版本号,例如:
"version": "5.6.281",- 将该变更提交并合并到
master。
版本号同时决定产物文件名(如 Windows 安装器为GDevelop 5 Setup <version>.exe)和下载脚本的--version参数,后续步骤必须与这里设置的值一致。
等待 CI 构建完成
合并提交后,CI 会开始构建。newIDE/README.md 的描述是:等待 CircleCI 与 AppVeyor 构建发布所需的产物(分别是 macOS+Linux 和 Windows)。需要注意两份配置文件的口径差异:appveyor.yml 文件头注释说明 Windows 构建"已被 CircleCI 上的构建取代,仅保留用于冗余/测试",而 .circleci/config.yml 中同时包含build-macos、build-linux和build-windows三个任务。实操时以 CircleCI 管线为主要等待对象,确认三个平台的构建任务都结束。
判断构建是否完成的文档依据:
- 在 GitHub 上查看该提交的状态,确认显示
ci/circleci: build — Your tests passed on CircleCI!且状态图标为绿色;若图标非绿色,构建仍在进行,先等待(newIDE/docs/Nightly-Builds-and-continuous-deployment.md 给出的判断方法)。 - 构建成功后,
newIDE/electron-app/dist目录的内容会被同步到 S3 的两个位置:s3://gdevelop-releases/<branch>/commit/<commit-hash>/和s3://gdevelop-releases/<branch>/latest/(同步命令见 .circleci/config.yml 中 "Deploy to S3 (specific commit)" 与 "Deploy to S3 (latest)" 步骤)。
记下这次发布对应的提交哈希,下一步下载建议按提交下载,原因见下文。
下载发布产物
README 指定使用 newIDE/app/scripts/download-all-build-artifacts.js 脚本一次性下载全部发布产物。脚本有四个参数:
--outputPath:产物存放目录(必填,不存在时脚本会自动创建);--branch:分支名,如master(必填);--version:与 package.json 中一致的目标版本号(必填);--commitHash:提交哈希(可选)。不传时脚本从该分支的latest目录下载。
脚本从https://gdevelop-releases.s3.amazonaws.com/<branch>/...下载一套固定清单的产物,包括:Windows 的 exe 安装器及其.blockmap、.appx、便携版 zip 和自动更新文件latest.yml;macOS 的 universal zip、dmg、.blockmap和latest-mac.yml;Linux 的 amd64/arm64 AppImage、便携版 zip 和latest-linux.yml、latest-linux-arm64.yml。完整清单见脚本内artifactsToDownload定义。
脚本自身依赖shelljs、minimist和本地lib/DownloadLocalFile辅助模块,.circleci/config.yml中记录的独立运行方式是另装它需要的四个包(axios、minimist、shelljs、adm-zip)并通过NODE_PATH暴露。以下命令按该方式执行(<commit-hash>替换为你这次发布对应的提交哈希,5.6.281替换为你实际设置的版本号):
mkdir gdl-release-deps && cd gdl-release-deps npm init -y npm install --no-audit --no-fund \ axios@^0.18.1 \ minimist@^1.2.5 \ shelljs@^0.8.4 \ adm-zip@^0.5.10 cd .. NODE_PATH="$PWD/gdl-release-deps/node_modules" \ node newIDE/app/scripts/download-all-build-artifacts.js \ --outputPath ./releases-5.6.281 \ --branch master \ --version 5.6.281 \ --commitHash <commit-hash>关于--commitHash有一个文档明确的注意事项:latest目录是按平台各自更新的。如果某一个平台的构建已结束、另一个还在进行或失败,从latest下载会得到来自不同提交哈希的产物混合。脚本在这种情况下会打印警告并建议使用--commitHash下载一致的产物集,因此发布正式版本时应始终传--commitHash。
下载结果的判断:每个产物成功后会打印Done downloading ...;任何产物失败时,脚本打印❌ Failed to download ... Aborting.并以退出码 2 结束,同时列出失败项及原因。错误含义(见脚本内describeDownloadError):404表示"not found (404). The artifact may not have been built yet";带--commitHash时403或404表示该提交在对应分支/平台上可能不存在或产物尚未构建。遇到这些提示时应回到上一节确认 CI 是否真的构建完成。
上传到 GitHub release
产物下载完成后,按 newIDE/README.md 的最后一步:将下载到的文件上传到新建的 GitHub release。README 对产物完整性没有给出额外的校验命令,本地检查以上一步脚本全部成功(无Aborting输出)为准。
可选的本地替代路径:README 说明也可以在newIDE/electron-app目录下执行npm run build手动构建一个桌面版本。这条路径用于本地出包,不替代 CI 产物的正式发布流程。
边界与相关但不属于本文的步骤
- 桌面版之外,网页版(web app)的发布是另一条命令:
cd newIDE/web-app && yarn deploy,它会同时上传 GDJS 与扩展源码并清除 CloudFlare 缓存。它不影响桌面版产物,按需单独执行。 master分支的 Nightly 构建虽然每个提交都在产出,但文档提醒它们未经测试、可能包含 bug,公开版本仍通过本文的"合并版本号 + 手动上传 release"流程发布,以便人工测试把关。
【免费下载链接】GDevelop🎮 Open-source, cross-platform 2D/3D/multiplayer game engine designed for everyone.项目地址: https://gitcode.com/GitHub_Trending/gd/GDevelop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考