GitLab CI/CD

GitLab CI/CD est un outil d'intégration continue et de déploiement continue[1], fourni avec la forge logicielle Gitlab.

GitLab logo.svg

ConfigurationModifier

IHMModifier

Dans le menu de gauche, cliquer sur CI/CD pour voir les options :

  • Pipelines : liste des groupes de jobs déjà lancés sur le dépôt. On peut les y relancer.
  • Editor : éditeur en ligne du fichier .gitlab-ci.yml du dépôt.
  • Jobs : liste de tous les jobs.
  • Schedules : gestion des tâches planifiées.

.gitlab-ci.ymlModifier

Pour qu'un pipeline se lance par hook dans un dépôt, il doit contenir un fichier .gitlab-ci.yml à la racine.

Exemple simpleModifier

stages:
  - build

build-code:
  stage: build
  script:
    - echo "Hello World!"
    - pwd; ls -alh

before_scriptModifier

Script à exécuter avant chaque job.

variablesModifier

Variables appelables plusieurs fois au sein du .gitlab-ci.yml. Certaines permettent de configurer le comportement de GitLab CI. Exemple :

GIT_STRATEGYModifier

Politique de clonage :

  • none : pas de clone (ex : si on utilise une image Docker).
  • fetch : clone différentiel depuis le dernier.
  • clone : clone à partir de zéro[2].

La valeur par défaut est définie dans l'IHM : /settings/ci_cd.

GIT_DEPTHModifier

Définit la profondeur lors du clone du dépôt : shallow clone[3].

Dans un jobModifier

stageModifier

Étape qui lancera le job.

scriptModifier

Script à lancer.

onlyModifier

Liste des branches où le job peut s'exécuter (lors des merges).

Exemple completModifier

Les étapes (stages) sont parallélisables.

DéploiementsModifier

Déploiement de test à chaque Merge RequestModifier

A chaque Merge Request (alias Pull Request, ou PR, ou MR), un job est créé pour lancer les instructions du .gitlab-ci.yml l'ordre. Mais avant de se lancer, il doit attendre la disponibilité d'un serveur de test sur lequel s'exécuter, appelé "runner"[4].

Sa configuration se trouve dans un .toml.

RéférencesModifier

Voir aussiModifier

Cette page constitue un livre entier. 

Cette page constitue un livre entier.