GDevelop 官方版本发布流程:更新版本号、等待 CI 构建并上传发布产物
2026/9/13 11:21:45 网站建设 项目流程

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上。

  1. 修改 newIDE/electron-app/app/package.json 中的version字段。仓库当前值为5.6.281,发布新版本时把第三位改为你的目标版本号,例如:
"version": "5.6.281",
  1. 将该变更提交并合并到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-macosbuild-linuxbuild-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、.blockmaplatest-mac.yml;Linux 的 amd64/arm64 AppImage、便携版 zip 和latest-linux.ymllatest-linux-arm64.yml。完整清单见脚本内artifactsToDownload定义。

脚本自身依赖shelljsminimist和本地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";带--commitHash403404表示该提交在对应分支/平台上可能不存在或产物尚未构建。遇到这些提示时应回到上一节确认 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询