
barichello/godot-ciDocker镜像,用于导出Godot Engine游戏并部署到GitLab/GitHub Pages和Itch.io,支持通过GitLab CI和GitHub Actions实现自动化流程。
!godot-ci
[***]
本项目包含 .gitlab-ci.yml 和 .github/workflows/godot-ci.yml 作为配置参考。
有关使用此模板的实际项目、示例和教程,请查看以下列表:
若要构建启用Mono的Godot项目,需在 .gitlab-ci.yml(GitLab)或 godot-ci.yml(GitHub)中将镜像标签从 barichello/godot-ci:VERSION 更改为 barichello/godot-ci:mono-VERSION。例如:barichello/godot-ci:mono-3.2.1。
构建调试版本(debug.keystore),可使用 .gitlab-ci.yml 文件中的 android_debug 任务示例。
若要使用自定义密钥库导出Android版本,步骤如下:
base64 release.keystore -w 0certutil -encodehex -f release.keystore encoded.txt 0x40000001SECRET_RELEASE_KEYSTORE_BASE64(类型为变量)添加。SECRET_RELEASE_KEYSTORE_USER(类型为变量),值为密钥库别名。SECRET_RELEASE_KEYSTORE_PASSWORD(类型为变量),值为密钥库密码。.gitlab-ci.yml 文件中的 android 任务示例。有关GDNative C++编译自动化,可参考基于此仓库的 godot-cpp-ci 仓库。
需先编译包含模块的Godot引擎。可参考Calinou的 godot-builds-ci 仓库实现Godot构建自动化。
之后,使用自定义构建照常导出项目。可参考Greenfox的 指南 了解如何将自定义Godot构建用于自动化导出。
暂不支持。Xcode项目自动化虽可行但复杂,且GitHub Actions最近才支持macOS运行器,未来将逐步支持。
以下是各支持的CI服务、模板任务及实际示例的对应关系。
| CI服务 | 模板 | 示例 |
|---|---|---|
| GitLab CI | Godot导出 / GitHub Pages / GitLab Pages / Itch.io | GitLab CI流水线 |
| GitHub Actions | Godot导出 | GitHub Actions运行状态 |
首先,从用作模板的 .yml 文件(.gitlab-ci.yml 或 .github/workflows/godot-ci.yml)中移除未使用的任务/阶段。
然后,根据所选CI和任务,在配置面板中添加以下环境变量:
[***]<用户名>/<项目名>/settings/secrets[***]<用户名>/<仓库名>/settings/ci_cd| 变量 | 描述 | 示例 |
|---|---|---|
| REMOTE_URL | 托管Web导出的git远程地址(需包含部署/个人访问令牌) | https://<github用户名>:<部署令牌>@github.com/<用户名>/<仓库>.git |
| GIT_EMAIL | 提交到 gh-pages 分支的Git*** | *** |
| GIT_USERNAME | 提交到 gh-pages 分支的用户名 | username |
其他变量由 gitlab-runner 自动设置,详见 预定义变量文档。
部署到Itch.io通过 Butler 实现。所需变量:
| 变量 | 描述 | 示例 |
|---|---|---|
| ITCHIO_USERNAME | Itch.io用户名(个人页面地址:https://<用户名>.itch.io) | username |
| ITCHIO_GAME | 游戏名称(游戏地址:https://<用户名>.itch.io/<游戏名>) | game |
| BUTLER_API_KEY | Itch.io API密钥(用于Butler认证),在GitLab CI中需设为“Masked”以保密 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
export_presets.cfg 中的导出名称是否与CI脚本中使用的名称匹配。test-project 模板),部分命令可能因路径错误无法运行。Greenfox的 godot-build-automation 仓库同样用于Godot导出自动化,内容丰富。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务