All Projects → aBARICHELLO → Godot Ci

aBARICHELLO / Godot Ci

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

Projects that are alternatives of or similar to Godot Ci

godot-ci
Docker image to export Godot Engine games. Templates for Gitlab CI and GitHub Actions to deploy to GitLab Pages/GitHub Pages/Itch.io.
Stars: ✭ 316 (+88.1%)
Mutual labels:  github-pages, github-page, gitlab, gitlab-ci, ci-cd, godot, godot-engine
godot-cpp-ci
Docker image and Github Actions to automatically compile Godot C++ GDNative libraries.
Stars: ✭ 21 (-87.5%)
Mutual labels:  gitlab, gitlab-ci, godot, godot-engine
Godot Ink
Ink integration for Godot Engine.
Stars: ✭ 129 (-23.21%)
Mutual labels:  godot, godot-engine
Pgsgp
Play Games Services plugin for Godot Game Engine 3.2 - Android
Stars: ✭ 130 (-22.62%)
Mutual labels:  godot, godot-engine
Pixelorama
A free & open-source 2D sprite editor, made with the Godot Engine! Available on Windows, Linux, macOS and the Web!
Stars: ✭ 2,535 (+1408.93%)
Mutual labels:  godot, godot-engine
Inkgd
Implementation of inkle's Ink in pure GDScript for Godot, with editor support.
Stars: ✭ 118 (-29.76%)
Mutual labels:  godot, godot-engine
Gamedev4noobs
Olá, sejam bem-vindos ao repositório _gamedev4noobs_ do Estúdio Vaca Roxa. O propósito desse repositório, além de contribuir para o projeto 4noobs, é ensinar o básico do desenvolvimento de jogos para iniciantes. Apresentando boas práticas e insumos para criar games incríveis.
Stars: ✭ 122 (-27.38%)
Mutual labels:  godot, godot-engine
Gitlabapiclient
GitLab API client
Stars: ✭ 138 (-17.86%)
Mutual labels:  gitlab-ci, gitlab
Gitlab Dashboard
📺 TV dashboard for a global view on Gitlab Pipelines
Stars: ✭ 107 (-36.31%)
Mutual labels:  gitlab-ci, gitlab
Chart Releaser Action
A GitHub Action to turn a GitHub project into a self-hosted Helm chart repo, using helm/chart-releaser CLI tool
Stars: ✭ 146 (-13.1%)
Mutual labels:  github-pages, ci-cd
Gitlab Ci Stack
Full CI pipeline project based on Gitlab & Gitlab CI running Docker, completely automated setup by Vagrant & Ansible, providing Let´s Encrypt certificates for private Servers, multiple Gitlab-Runners and the Gitlab Container Registry, incl. GitLab Pages
Stars: ✭ 146 (-13.1%)
Mutual labels:  gitlab-ci, gitlab
Chart Gd
Animated charts for Godot Engine
Stars: ✭ 151 (-10.12%)
Mutual labels:  godot, godot-engine
Godotrogueliketutorial
A guide to build a simple Roguelike game with Godot engine.
Stars: ✭ 117 (-30.36%)
Mutual labels:  godot, godot-engine
Python Gitlab
Python wrapper for the GitLab API
Stars: ✭ 1,679 (+899.4%)
Mutual labels:  gitlab, gitlab-ci
Gdscript Docs Maker
Create documentation and class references from your Godot GDScript code
Stars: ✭ 121 (-27.98%)
Mutual labels:  godot, godot-engine
Semantic Release
📦🚀 semantic-release written in go
Stars: ✭ 113 (-32.74%)
Mutual labels:  gitlab-ci, gitlab
Gitlab Ci Local
Tired of pushing to test your .gitlab-ci.yml?
Stars: ✭ 134 (-20.24%)
Mutual labels:  gitlab-ci, gitlab
Gitlab Ci Monitor
A simple dashboard for monitoring GitLab CI builds. Alpha version.
Stars: ✭ 152 (-9.52%)
Mutual labels:  gitlab-ci, gitlab
Lab
lab is a cli client of gitlab like hub
Stars: ✭ 94 (-44.05%)
Mutual labels:  gitlab-ci, gitlab
Hanuman
A responsive, lightning-fast Jekyll theme built using AMP (Accelerated Mobile Pages) to speed up your blogs and websites.
Stars: ✭ 100 (-40.48%)
Mutual labels:  github-pages, github-page

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 SECRET_RELEASE_KEYSTORE_USER as type variable with the alias of your keystore as value.
  4. Create a third variable SECRET_RELEASE_KEYSTORE_PASSWORD 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/<username>/<project-name>/settings/secrets
  • GitLab: https://gitlab.com/<username>/<repo-name>/settings/ci_cd

GitHub Pages

Secrets needed for a GitHub Pages deploy via GitLab CI:

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. [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
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 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].