Aller au contenu

Compilation automatique (CICD)

Dans les systèmes git modernes, tels que Github et Gitlab, il est possible de faire effectuer des commandes automatiquement lors d'actions tels que des git push. Ces actions automatiques se nommes CICD (Continuous Integration, Continuous Development).

Dans Gitlab, si un fichier .gitlab-ci.yml existe à la racine de votre repo, celui-ci sera lu et exécuté selon les configurations mises à l'intérieur. Des machines docker seront alors utilisées pour effectuer des commandes sur votre code. Ces actions pourraient être des tests unitaires ou bien la compilation de votre programme.

Archive Jar

Le fichier .gitlab-ci.yml suivant permet d'automatiquement compiler et créer une archive .jar lors d'un git push, à condition d'utiliser maven lors de la création du projet et d'avoir installé les prérequis (voir Créer une archive .jar)

.gitlab-ci.yml
image: maven

stages:
  - build

build:
    stage: build
    script:
        - mvn clean package
        - mvn package -DskipTests
    artifacts:
        paths:
            - target/*.jar

Explications

  1. Ligne 1 : L'image docker choisie sera une permettant d'utiliser maven.
  2. Ligne 3-4 : On définit l'ordre des étapes à effectuer.
  3. Ligne 6 : Le nom de l'étape. Celle-ci sera affichée dans l'interface graphique de Gitlab.
  4. Ligne 7 : L'étape (lignes 3-4) où exécuter cette action.
  5. Ligne 8-10 : Les commandes à exécuter sur votre repo en entier.
  6. Ligne 11-13 : Les fichiers à enregistrer comme artéfacts, permettant de les télécharger par la suite.

Interface Gitlab

Une fois le fichier d'automatisation poussé dans le repo, celui-ci sera exécuté selon les règles définies. Dans le cas présent, toutes les branches seront impactées. On pourra voir un icône de suivi sur la page principale de votre repo.

Les artéfacts seront disponibles sous Build, Artifacts dans le menu de gauche.

Il sera même possible de télécharger ou d'explorer les fichiers archivés de cette manière.