GitLab CI/CD
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
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 chaquescript
- Les balises
stages
etstage
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