GitLab CI/CD: Difference between revisions
Jump to navigation
Jump to search
Zoran.Chanet (talk | contribs) (Created page with "= Prérequis = * version Gitlab >= 8.0 ou utiliser GitLab.com * <code>Settings -> General -> Permissions -> Pipelines</code> (''Only team members'' ou ''Everyone with access''...") |
Zoran.Chanet (talk | contribs) |
||
| (3 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
= Auteur = |
|||
[[User:Zoran.Chanet | CHANET Zoran]] |
|||
= Prérequis = |
= Prérequis = |
||
* |
* Version Gitlab >= 8.0 ou utiliser GitLab.com |
||
* <code>Settings -> General -> Permissions -> Pipelines</code> (''Only team members'' ou ''Everyone with access'') |
* <code>Settings -> General -> Permissions -> Pipelines</code> (''Only team members'' ou ''Everyone with access'') |
||
* Au moins un runner configuré pour le projet (ou shared runner) (voir <code>Settings -> CI/CD -> Runners</code>) (''Enable shared runners on this project'' pour avoir accès aux shared runners) |
* Au moins un runner configuré pour le projet (ou shared runner) (voir <code>Settings -> CI/CD -> Runners</code>) (''Enable shared runners on this project'' pour avoir accès aux shared runners) |
||
| Line 16: | Line 19: | ||
= Astuces = |
= Astuces = |
||
* <code>.gitlab-ci.yml</code> est dépendant de la version (donc branche) |
* <code>.gitlab-ci.yml</code> est dépendant de la version (donc branche) |
||
* |
* Format du fichier <code>.gitlab-ci.yml</code> : |
||
stages: |
stages: |
||
- <étape> |
- <étape> |
||
| Line 45: | Line 48: | ||
* <span style="color:red">/!\</span> <code>script</code> est un mot-clé obligatoire pour chaque job |
* <span style="color:red">/!\</span> <code>script</code> est un mot-clé obligatoire pour chaque job |
||
* <code>before_script</code> est optionnel et exécuté avant chaque <code>script</code> |
* <code>before_script</code> est optionnel et exécuté avant chaque <code>script</code> |
||
* |
* Les balises <code>stages</code> et <code>stage</code> sont optionnelles mais structurent le pipeline |
||
* <code>CI/CD -> Pipelines -> CI LINT</code> (bouton) permet de tester la validité du fichier <code>.gitlab-ci.yml</code> |
* <code>CI/CD -> Pipelines -> CI LINT</code> (bouton) permet de tester la validité du fichier <code>.gitlab-ci.yml</code> |
||
* ''stuck'' signifie qu’aucun runner n’est configuré pour prendre en charge le job |
* ''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 <code>Settings -> CI/CD -> Runners</code>) mais que le pipeline indique ''stuck'', il peut être nécessaire d'autoriser les runners à accepter les jobs sans tags |
|||
* |
* Examples de <code>.gitlab_ci.yml</code> : [https://gricad-gitlab.univ-grenoble-alpes.fr/help/ci/examples/README.md https://gricad-gitlab.univ-grenoble-alpes.fr/help/ci/examples/README.md] |
||
= Fonctionnement = |
= Fonctionnement = |
||
* Activation du pipeline à chaque push sur une branche disposant du fichier <code>.gitlab-ci.yml</code> |
* Activation du pipeline à chaque push sur une branche disposant du fichier <code>.gitlab-ci.yml</code> |
||
* Au lancement, chaque job est réalisé par un runner dans son propre environnement |
* Au lancement, chaque job est réalisé par un runner dans son propre environnement |
||
= Sources = |
|||
[https://gricad-gitlab.univ-grenoble-alpes.fr/help/ci/quick_start/README Getting started with GitLab CI/CD]<br> |
|||
[https://gricad-gitlab.univ-grenoble-alpes.fr/help/ci/enable_or_disable_ci.md How to enable or disable GitLab CI/CD] |
|||
Latest revision as of 12:58, 8 February 2019
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.ymlpour définir des étapes (build, test, deploy…) Settings -> CI/CD -> Runners(pour voir lesquels sont assignés au projet)
Astuces
.gitlab-ci.ymlest 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)
- /!\
scriptest un mot-clé obligatoire pour chaque job before_scriptest optionnel et exécuté avant chaquescript- Les balises
stagesetstagesont 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