Comment mettre en place l'intégration continue dans vos projets?

L'intégration continue (CI) est une pratique qui consiste à vérifier après chaque modification du code source que ces modifications ne produisent pas de régression dans l'application développée.

Concrètement cela signifie qu'à chaque commit vers le dépôt git du projet concerné sur gricad-gitlab, un certains nombre d'opérations (déploiement, installation, tests ...) seront lancées sur un serveur suivi de la publication des résultats de ces opérations (compilation réussie ou non, tests validées etc .)

Principe de fonctionnement

Pour activer l'intégration continue, il suffit de créer un fichier .gitlab-ci.yml à la racine du dépôt git du projet (voir détails ici).

Ce fichier sert à décrire les différentes étapes à appliquer.

Par exemple:

before_script:
  - apt-get update -qq && apt-get install -y -qq boost-devel

build:ubuntu:
  image: ubuntu:trusty
  script: "sh ci/build.sh"

Ainsi, après chaque commit, une "ubuntu trusty" sera déployée, avec le package boost-devel. Le projet sera cloné sur la machine en question et le contenu du script build.sh (cmake, make ...) exécuté. La liste des jobs en cours et passés est accessible via l'onglet CI/CD-->pipelines du projet (exemple)

Pour chaque job vous avez également accès, en cliquant dessus, à la sortie console sur la machine cible (exemple).

/!\ Important /!\

Chaque job est éxécuté sur un "runner". Une machine (gricad-gitlab-ci) est disponible par défaut pour l'ensemble des projets ("shared runner"). Vous pouvez également ajouté autant de runners dédiés que vous le souhaitez (voir la procédure dans l'exemple de projet ci-après).

gricad-gitlab-ci (shared runner par défaut) ne doit être utilisé que pour la phase de mise en place et les premiers tests. Il est impératif d'ajouter vos propres runners pour la suite, sous peine de surcharge du shared runner.

La gestion des runners de chaque projet se fait via l'onglet settings-->CI/CD.

Exemple de projet

Un projet illustrant la mise en place de l'intégration continue sur gricad-gitlab. Vous pouvez le cloner et le "dupliquer" pour vos tests.

Intégration continue avec gitlab

La documentation gitlab avec un "getting started" et toutes les informations nécessaires pour aller plus loin.