GitLab CI/CD

= Auteur = CHANET Zoran

= Prérequis =
 * Version Gitlab >= 8.0 ou utiliser GitLab.com
 * (Only team members ou Everyone with access)
 * Au moins un runner configuré pour le projet (ou shared runner) (voir ) (Enable shared runners on this project pour avoir accès aux shared runners)

= Activation = Définir un fichier  valide à la racine du projet

= Runners =
 * Sont des VM isolées
 * Peuvent être shared entre les projets
 * Idéalement sur une autre machine que le projet GitLab
 * Configurés par le fichier  pour définir des étapes (build, test, deploy…)
 * (pour voir lesquels sont assignés au projet)

= Astuces = stages: - <étape> - <étape> - ... before_script: -   -    - …  : stage: <étape> script: -     -      - … : stage: <étape> script: -     -      - … …
 * est dépendant de la version (donc branche)
 * Format du fichier  :
 * /!\ Les espaces doivent rester des espaces (pas des tabulations)
 * /!\  est un mot-clé obligatoire pour chaque job
 * est optionnel et exécuté avant chaque
 * Les balises  et   sont optionnelles mais structurent le pipeline
 * (bouton) permet de tester la validité du fichier
 * stuck signifie qu’aucun runner n’est configuré pour prendre en charge le job
 * Si des runners sont actifs et affiliés au projet (voir ) mais que le pipeline indique stuck, il peut être nécessaire d'autoriser les runners à accepter les jobs sans tags
 * Examples de  : https://gricad-gitlab.univ-grenoble-alpes.fr/help/ci/examples/README.md

= Fonctionnement =
 * Activation du pipeline à chaque push sur une branche disposant du fichier
 * Au lancement, chaque job est réalisé par un runner dans son propre environnement

= Sources = Getting started with GitLab CI/CD How to enable or disable GitLab CI/CD