Loïc FORESTIER
05. Février 2023

Godot : CI/CD

Posté le 05. Février 2023  •  3 minutes  • 521 mots

Le CI/CD

CI/CD (Continuous Integration / Continuous Deployment) est un processus qui permet d’automatiser la construction, les tests et le déploiement de logiciels. C’est une pratique courante pour les développeurs pour s’assurer que leur code est fonctionnel et livrable en continu.

Gitlab nous permet de faire du CI/CD à l’aide de fichier YAML. Pour se faire il suffit de 2 choses :

  1. Sauvegarder son code sur un repo Gitlab,
  2. avoir un fichier .gitlab-ci.yml à la racine de son projet.

CI/CD avec Godot

Le CI/CD peut être utilisé pour déployer un jeu développé le Godot Engine .

Il faudra préalablement configurer votre export dans Godot. Exportez Faites bien attention au nom utilisé pour le profil de l’export, ici “HTML5”, vous pouvez utiliser le nom que vous voulez mais il faudra le reporter dans le YAML qui suit (ligne 14).

Comme mentionné précédemment, pour utiliser GitLab CI/CD, vous devez d’abord définir un fichier .gitlab-ci.yml qui décrit les étapes de votre processus de déploiement. Ce fichier peut inclure des tâches telles que la construction du jeu et le déploiement sur un serveur en production (ici Gitlab pages).

Il faudra ensuite pousser votre code sur Gitlab.

PS : Il n’est pas nécessaire que votre projet soit en visibilité publique pour que ça marche. Si vous souhaitez faire tester votre jeu à vos potes (de manière publique) via Gitlab pages, vous pouvez paramétrer la visibilité de pages indépendament du projet. Projet / Settings / General / Visibility, project features, permissions / Pages (everyone pour un accès public)

Voici mon fichier YAML de mon jeu INCREDIBLE CATS ADVENTURES pour l’exemple :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
image: barichello/godot-ci:latest

variables:
  EXPORT_NAME: IncredibleCatsAdventure

stages:
  - export
  - deploy

web:
  stage: export
  script:
    - mkdir -v -p build/web
    - godot -v --export "HTML5" ./build/web/index.html
  artifacts:
    name: $EXPORT_NAME-$CI_JOB_NAME
    paths:
      - build/web
  only:
   - master

pages:
  stage: deploy
  dependencies:
    - web
  script:
    - rm -rf public
    - cp -r build/web public
  artifacts:
    paths:
      - public
  only:
   - master

Attention, la ligne 22 est importante, si vous n’écrivez pas “pages:” Gitlab ne comprendra pas qu’il faut déployer sur pages.

Avec ce code, lorsque vous poussez le code de votre jeu sur votre branche master, GitLab CI/CD exécutera automatiquement les étapes décrites dans votre fichier .gitlab-ci.yml. Si toutes les étapes réussissent, votre jeu sera déployé sur Gitlab pages. C’est déployé !

En utilisant GitLab CI/CD pour déployer votre jeu, vous pouvez vraiment gagner du temps en étant sûr que votre jeu est toujours déployé avec les dernières mises à jour sur tous les supports. Ici je vous montrais comment déployer un projet sur pages mais on peut aussi automatiser le déploiement de jeux mobiles et PC/Linux directement sur Steam, Itch.io, etc. !

Conclusion

Utiliser GitLab CI/CD pour déployer un jeu développé avec Godot Engine est une pratique recommandée pour les développeurs qui cherchent à automatiser le processus de déploiement. Il est tout de même à noter que les performances ne seront pas à l’appel si vous utilisez un serveur public.

Suivez moi !

Informatique, musique et conception graphique... J'aime toucher à tout !