This will cache the imported files between each run. This massively speeds up the export stage for big projects. Note that this will save the cache *after* a stage is done, so if you add new files it will still import them once for each platform (but will not import them again in the future, which is what matter).
godot-ci
Docker image to export Godot Engine games and deploy to GitLab/GitHub Pages and Itch.io.
Docker Hub
https://hub.docker.com/r/barichello/godot-ci/
How To Use
A .gitlab-ci.yml is included in this project as reference, for live projects, examples and tutorials using this template check the list below:
- Video tutorial by Kyle Luce
- Repository examples: GitHub | GitLab
- Deployed game examples: GitHub Pages | GitLab Pages | Itch.io
- Pipelines running
You can choose either GitLab Pages or GitHub Pages to deploy web exports.
Platforms
GitLab Pages
Delete the deploy-github-pages job from your .gitlab-ci.yml.
GitHub Pages
Delete the pages job and set the following Variables in the GitLab CI/CD panel:
Access https://gitlab.com/<username>/<repo-name>/settings/ci_cd to edit:
| Variable | Description | Example |
|---|---|---|
| $REMOTE_URL | The git remote where the web export will be hosted (in this case GitHub), it should contain your deploy/personal access token |
https://<github username>:<deploy token>@github.com/<username>/<repository>.git |
| $GIT_EMAIL | Git email of the account that will commit to the gh-pages branch. |
artur@barichello.me |
| $GIT_USERNAME | Username of the account that will commit to the gh-pages branch. |
abarichello |
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. You will need to set variables in the Gitlab CI/CD settings panel for it to work.
| Variable | Description | Example |
|---|---|---|
| $ITCHIO_USERNAME | Your username on Itch.io, as in your personal page will be at https://<username>.itch.io |
username |
| $ITCHIO_GAME | the name of your game on Itchio, as in your game will be available at https://<username>.itch.io/<game> |
game |
| $BUTLER_API_KEY | An Itch.io API key is necessary for Butler so that Gitlab-ci can authenticate on Itch.io on your behalf. Make that API key Masked to keep it secret |
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |