Skip to main content

Automation

The automation tools are command line tools that can be used either manually with a terminal or with a CI system. These tools helps you managing your working environment, your project export and the localization management. It uses Python scripts with nox configuration to handle easily virtual envs and dependencies.

Here is the list of nox sessions available (use nox --list to get it from a command line):

  • build: Build Godot project.
  • export: Export Godot project.
  • publish: Publish Godot project.
  • setup: Setup development environment.
  • release_version: Release a version of the game.
  • update_localization: Update localization files.
  • translate: Translate english localization to another language using DeepL.
  • export_icon: Export icon png file to ico.

Configuration

The automation tools configuration is done in the file automation/common/configuration.py. 

You must set the following variables:

  • FORGEJO_API_URL: The api url of your repository (used to automatically create a release entry when releasing a new version of your game).
  • GAME_NAME: Should be automatically set up if you used the dotnet template.
  • PLATFORM_NAMES: The platforms you target (Supported values: "Windows", "Linux")
  • CONFIGURATION_NAMES: The configurations you want to uses.
  • DRM_NAMES: The list of DRMs you want to use (Supported values: "NoDrm", "Steam").  
  • STORE_NAMES: The list of store you want to publish on (supported values: "Steam", "Itch.io").
  • APPS: Register your apps.
  • STEAM_SDK_URL: The Steam sdk url compatible with your project.

Nox Sessions

You can list the available arguments of a session by using the --help argument.

nox -s session_name -- --help

Setup

Setup session must be used to setup or repair the development environment. It ensure that git configuration is correct, activate or download and install the correct Godot version and sets up Godot editor settings.

nox -s setup

You can use the setup session to force the installation and setup of a specific Godot version using the --force-godot-version argument. This is useful for Godot migration. The new Godot version is stored in global.json and will be used automatically when calling the setup session without arguments.

nox -s setup -- --force-godot-version 4.7

You can tells the setup session which text editor you will use so it can configure the Godot editor settings accordingly. For now the supported values are code for Visual Studio Code and nvim for NeoVim. The settings will be stored in the file .userconfig to ensure it stay applied when calling the setup session without arguments.

nox -s setup -- --text-editor nvim

You can ask the setup session to install store sdks using the --install-sdks argument. This is not activated by default since it is not needed if you don't need to publish the game.

nox -s setup -- --install-sdks