- GitHub pages auto-deploy
- itch.io auto-delivery
- best practices dir stucture
- Optional
- git-LFS
- GUT (Godot Unit Testing)
-
Sign in to GitHub and Itch.io:
- Make sure you are signed in to both github and itch.io
-
Create a GitHub Personal Access Token for the project:
- Create a Personal Access Token, in your GitHub user account settings, with the following permissions:
-
Add personal access token to repo secrets:
-
Set the read and write permissions for the workflow:
-
Setup GitHub Pages:
-
Customize the workflow yaml to your project:
- Edit the .github/workflows/godot-ci.yml file:
- 👉
https://github.com/<your-github-username>/<your-repository-name>/blob/main/.github/workflows/godot-ci.yml
name: "godot-ci export" on: push: tags: - "v*" env: 👉 GODOT_VERSION: X.x #your-godot-version probably "3.5" 👉 EXPORT_NAME: string #the-name-of-your-project
- After the godot-ci workflow completes you will find your game at .github.io/
- 👉
- Edit the .github/workflows/godot-ci.yml file:
-
Create a butler API token:
- Generate an API token in itch.io settings
-
Add Token to repo Secrets:
-
Customize the deploy yaml to your project:
- Edit .github/workflows/publish-to-itchio.yml
- 👉
https://github.com/<your-github-username>/<your-repository-name>/blob/main/.github/workflows/publish-to-itchio.yml
name: "publish to itch.io" on: release: types: [published] env: 👉 ITCH_USER: your_itchio_username #<your-user-name>.itch.io 👉 ITCH_GAME: the_url_stub_of_your_game #<your-user-name>.itch.io/<the-url-stub>
- 👉
- Edit .github/workflows/publish-to-itchio.yml
GitHub actions will trigger an autodeploy process when it detects a tag starting with "v", For Example: v1.0.1
- Commit your changes as normal, then tag the commit:
git tag -a v1.0 -m "summary of release changes"
- Push your changes with the tag:
git push origin --tags
- Github Actions will detect the new tag and trigger a new automated build of the game.
- When it is done building it will auto-deploy an HTML5 Version to Github Pages.
- It will release all versions you have configured to build to Itch.io.
Before you push your first changes make sure you have git-lfs installed on your system: https://git-lfs.github.com/ this template comes with a preconfigured .gitattributes file but feel free to add your own rules. you must change the filename from gitattributes-template to .gitattributes
Godot Unit Tests (GUT) is configured by default to run on pull requests to main. Tests are to be placed in res://test in either the res://test/unit or res://test/integration dirs. If you don't want to use tests just don't place tests there. For more information on GUT: https://github.com/bitwes/Gut/wiki/Quick-Start
- the project/asset directory is where you keep all your game art, sound, etc... It can be tracked by git-lfs
- the project/src directory is where you keep the source-code. It should not be tracked by git-lfs.