Skip to content

Setup d'un env de développement

Mathu-lmn edited this page Jun 14, 2024 · 5 revisions

Pour commencer à développer sur Ludos, vous aurez besoin de:

  • IntelliJ IDEA
  • Docker

Clone et setup des repos

Après votre arrivée dans l'équipe, le @ de votre compte GitHub sera demandé pour vous ajouter sur notre organisation.

Afin de contribuer à Ludos en tant que Membre d'EC, vous devez clone plusieurs repository qui sont nécessaires pour le fonctionnement de Ludos:

Ces trois dépendances doivent être situées dans le même dossier que le projet Ludos, une configuration Gradle a été faite pour faire apparaître toutes ces dépendances dans la même solution IntelliJ IDEA. Une fois les repos clonés, vous devez build les dépendances avec Gradle (tâche appelée build dans le projet Ludos). Une fois cela fait, vous devrez être en mesure de voir un dossier run dans le dossier du projet Ludos. Il contiendra le .jar de LudosCore et les jeux séparés en plusieurs jars.

Démarrage d'un serveur local

Le démarrage d'un serveur de développement se fera avec Docker, donc assurez vous d'avoir installé Docker sur votre machine.

Afin de pouvoir récupérer l'image de base des serveurs Mini-jeux d'EC, il y a deux façons de faire en fonction de votre environnement:

Le succès d'une des opérations ci-dessous est défini par le succès du pull de l'image après l'exécution de la prochaine étape avec la run configuration IntelliJ.

Login CLI: Ouvrez un terminal et tapez la commande docker login registry.efreicraft.fr puis complétez votre nom d'utilisateur et votre mot de passe du SSO.

Ajout Registry via IntelliJ: Ajoutez un registry Docker à IntelliJ en suivant ces étapes:

Vous devez ensuite créer un fichier appelé : Run Server.run.xml dans le dossier dev dans la racine de Ludos et y coller le contenu suivant :

<component name="ProjectRunConfigurationManager">
  <configuration default="false" name="Run Server" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
    <deployment type="dockerfile">
      <settings>
        <option name="imageTag" value="dev.efrei-craft/acp/templates/mini" />
        <option name="attachToContainerNeeded" value="true" />
        <option name="containerName" value="ludos_dev" />
        <option name="contextFolderPath" value="../../EC" />
        <option name="envVars">
          <list>
            <DockerEnvVarImpl>
              <option name="name" value="ANIMUS_STANDALONE" />
              <option name="value" value="true" />
            </DockerEnvVarImpl>
          </list>
        </option>
        <option name="portBindings">
          <list>
            <DockerPortBindingImpl>
              <option name="containerPort" value="25565" />
              <option name="hostPort" value="25565" />
            </DockerPortBindingImpl>
          </list>
        </option>
        <option name="sourceFilePath" value="dev/Dockerfile" />
        <option name="volumeBindings">
          <list>
            <DockerVolumeBindingImpl>
              <option name="containerPath" value="/data/plugins/LudosCore.jar" />
              <option name="hostPath" value="C:\Mathurin\EFREI\Assos\EC\Ludos\run\plugins\LudosCore.jar" />
            </DockerVolumeBindingImpl>
            <DockerVolumeBindingImpl>
              <option name="containerPath" value="/data/plugins/LudosCore/games" />
              <option name="hostPath" value="C:\Mathurin\EFREI\Assos\EC\Ludos\run\plugins\LudosCore\games" />
            </DockerVolumeBindingImpl>
          </list>
        </option>
      </settings>
    </deployment>
    <method v="2">
      <option name="Gradle.BeforeRunTask" enabled="false" tasks="build" externalProjectPath="$PROJECT_DIR$" vmOptions="" scriptParameters="" />
    </method>
  </configuration>
</component>

Ouvrez le fichier et cliquez sur le lien sur le bandeau de warning "Open Configuration".

Afin de réduire la taille du contexte Docker, ajoutez un .dockerignore dans le dossier qui contiens les projets que vous avez cloné et ajoutez les deux lignes:

**/node_modules
**/.git

L'exclusion des node_modules est uniquement utile si vous développez sur Animus.

Une fois sur la page de configuration de la Run Configuration, allez sur la partie des "Bind Mounts" pour y remplacer les dossiers hôte pour matcher avec l'emplacement du projet Ludos. Ces deux pointages doivent être fait sur le dossier run qui a été généré en faisant un build de Ludos.

Il faut également changer le dossier de contexte pour celui qui représente la racine de tous les projets EC que vous avez cloné au début.

Une fois ces opérations faites, vous pouvez lancer le serveur !

Processus de développement

Seulement un redémarrage du conteneur est nécessaire pour appliquer les changements issus d'un build. Cela veut dire que vous devez build si vous souhaitez tester vos modifications, cela s'applique uniquement à LudosCore et les jeux Ludos (étant donné qu'ils sont les seuls mounts de votre hôte au conteneur Docker de test).