GitLab CI/CD

From air
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Auteur

CHANET Zoran

Prérequis

  • Version Gitlab >= 8.0 ou utiliser GitLab.com
  • Settings -> General -> Permissions -> Pipelines (Only team members ou Everyone with access)
  • Au moins un runner configuré pour le projet (ou shared runner) (voir Settings -> CI/CD -> Runners) (Enable shared runners on this project pour avoir accès aux shared runners)

Activation

Définir un fichier .gitlab-ci.yml 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 .gitlab-ci.yml pour définir des étapes (build, test, deploy…)
  • Settings -> CI/CD -> Runners (pour voir lesquels sont assignés au projet)

Astuces

  • .gitlab-ci.yml est dépendant de la version (donc branche)
  • Format du fichier .gitlab-ci.yml :
stages:
  - <étape>
  - <étape>
  - ...

before_script:
  - <commande>
  - <commande>
  - … 

<job1-name>:
  stage: <étape>
  script:
    - <commande>
    - <commande>
    - …

<job2-name>:
  stage: <étape>
  script:
    - <commande>
    - <commande>
    - …

…
  • /!\ Les espaces doivent rester des espaces (pas des tabulations)
  • /!\ script est un mot-clé obligatoire pour chaque job
  • before_script est optionnel et exécuté avant chaque script
  • Les balises stages et stage sont optionnelles mais structurent le pipeline
  • CI/CD -> Pipelines -> CI LINT (bouton) permet de tester la validité du fichier .gitlab-ci.yml
  • 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 Settings -> CI/CD -> Runners) mais que le pipeline indique stuck, il peut être nécessaire d'autoriser les runners à accepter les jobs sans tags
  • Examples de .gitlab_ci.yml : https://gricad-gitlab.univ-grenoble-alpes.fr/help/ci/examples/README.md

Fonctionnement

  • Activation du pipeline à chaque push sur une branche disposant du fichier .gitlab-ci.yml
  • 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