Need help with godot-ci?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

aBARICHELLO
158 Stars 29 Forks MIT License 67 Commits 9 Opened issues

Description

Docker image to export Godot Engine games. Templates for Gitlab CI and GitHub Actions to deploy to GitLab Pages/GitHub Pages/Itch.io.

Services available

!
?

Need anything else?

Contributors list

# 161,822
Haxe
C
proton
gitlab-...
40 commits
# 379,691
CSS
HTML
gitlab-...
github-...
6 commits
# 70,241
Less
Bootstr...
facial-...
emotion...
5 commits
# 292,677
c-plus-...
sprites
C
sprites...
3 commits
# 31,707
C
godot-e...
animato...
Godot
1 commit
# 4,547
C++
Godot
godoten...
gdscrip...
1 commit
# 307,638
C++
Python
gitlab-...
github-...
1 commit
# 154,725
C
Anki
gitlab-...
github-...
1 commit

godot-ci

Docker image to export Godot Engine games and deploy to GitLab/GitHub Pages and Itch.io using GitLab CI and GitHub Actions.

Docker Hub

https://hub.docker.com/r/barichello/godot-ci/

How To Use

.gitlab-ci.yml
and
.github/workflows/godot-ci.yml
are included in this project as reference.
For live projects, examples and tutorials using this template check the list below:

Mono/C

To build a godot project with Mono enabled, change the image tag from

barichello/godot-ci:VERSION
to
barichello/godot-ci:mono-VERSION
in
.gitlab-ci.yml
(Gitlab) or
godot-ci.yml
(Github). e.g.
barichello/godot-ci:mono-3.2.1
.

Android

To build a debug release (debug.keystore), use the

android_debug
job example in the
gitlab-ci.yml
file.

If you want to export for Android with your own keystore, you can do this with the following steps: 1. Take your generated keystore and convert it to Base64: Linux & macOS:

base64 release.keystore -w 0
Windows:
certutil -encodehex -f release.keystore encoded.txt 0x40000001
2. Go to GitLab Project > Settings > CI/CD > Variables and copy the Base64-encoded keystore value in a new variable
SECRET_RELEASE_KEYSTORE_BASE64
as type variable. 3. Create a second variable SECRETRELEASEKEYSTOREUSER as type variable with the alias of your keystore as value. 4. Create a third variable SECRETRELEASEKEYSTOREPASSWORD as type variable with the password of your keystore as value. 5. Use the
android
job example in the
gitlab-ci.yml
file.

GDNative/C++

See this repository for automating GDNative C++ compilation, which is based off this repository.

Modules

You have to compile Godot with the modules included first. See this excellent repository by Calinou for automating Godot builds.

After that, you would use the custom build to export your project as usual. See this guide by Greenfox on how to use a custom Godot build for automated exports.

iOS

Not available yet. Automating Xcode projects is doable but not trivial, and macOS runners only recently became available for GitHub actions, so it will happen eventually.

Platforms

Here's a mapping between each supported CI service, the template jobs and a live example.

|CI|Template|Example |-|-|-| |GitLab CI|Godot Exports / GitHub Pages / GitLab Pages / Itch.io|GitLab CI Pipelines |GitHub Actions|Godot Exports | GitHub Actions running

Environment configuration

First you need to remove unused jobs/stages from the

.yml
file you are using as a template(
.gitlab-ci.yml
or
.github/workflows/godot-ci.yml
).
Then you have to add these environments to a configuration panel depending on the chosen CI and jobs: - GitHub:
https://github.com///settings/secrets
- GitLab:
https://gitlab.com///settings/ci_cd

GitHub Pages

Secrets needed for a GitHub Pages deploy via GitLab CI:

|Variable|Description|Example| |-|-|-| | REMOTEURL | The

git remote
where the web export will be hosted (in this case GitHub), it should contain your deploy/personal access token|
https://:@github.com//.git
| GIT
EMAIL | Git email of the account that will commit to the

gh-pages
branch. |
[email protected]
| GIT_USERNAME | Username of the account that will commit to the
gh-pages
branch. |
username

Others variables are set automatically by the

gitlab-runner
, see the documentation for predefined variables.

Itch.io

Deployment to Itch.io is done via Butler.
Secrets needed for a Itch.io deploy via GitLab CI:

|Variable|Description|Example| |-|-|-| | ITCHIOUSERNAME | Your username on Itch.io, as in your personal page will be at

https://.itch.io
|
username
| ITCHIO
GAME | the name of your game on Itchio, as in your game will be available at

https://.itch.io/
|
game
| BUTLERAPIKEY | An Itch.io API key is necessary for Butler so that the CI can authenticate on Itch.io on your behalf. Make that API key
Masked
(GitLab CI) to keep it secret
|
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Troubleshoot

Problems while exporting

  • Check that the export names on
    export_presets.cfg
    match the ones used in your CI script.
  • Check the paths used in your CI script, some commands may be running in the wrong place if you are keeping the project in a folder (like the
    test-project
    template) or not.

Authentication errors with Butler

Additional Resources

Greenfox has an excellent repo that is also for automating Godot exports.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.