Partie 1 · Configuration
Le fichier .gitlab-ci.yml
« C'est bien tout ça, mais comment qu'on fait ? » La réponse : un fichier .gitlab-ci.yml à la racine du dépôt, écrit en YAML.
Digression : YAML
- superset de JSON ;
- très utilisé pour les fichiers de configuration ;
- très simple à lire et à éditer ;
- types : booléens, nombres, chaînes, listes et dictionnaires ;
- « ça s'apprend sur le tas ».
En YAML, l'indentation structure le fichier et les tirets - introduisent les éléments d'une liste.
Vérifie que tu as compris
Comment le cours décrit-il YAML ?
Structure du fichier
stages: - build - test image: "ubuntu:latest" variables: ... build-code-job: stage: build ... test-code-job1: stage: test ... test-code-job2: stage: test ...
stages: déclaration des stages, dans l'ordre d'exécution ;imageetvariables: options communes à tous les jobs ;- les jobs (ici
build-code-job,test-code-job1,test-code-job2) : déclarés en indiquant le stage dont ils dépendent. Deux jobs peuvent partager le même stage.
Vérifie que tu as compris
Dans cette structure, que fait la ligne « stage: test » d'un job ?
Les jobs : script et image
Un job contient au minimum un stage et un script (liste de commandes, ou commande unique). Premier exemple du cours (Ruby) :
build-code-job: stage: build script: - echo "Check the ruby version, then build some Ruby project files:" - ruby -v - rake
Le mot-clé image peut aussi être défini dans un job, pour choisir le conteneur de ce job :
build-code-job: stage: build image: "ubuntu:latest" script: python setup.py wheel
Chaque job tournant dans un conteneur (leçon 2), image décide de l'environnement dans lequel les commandes du script s'exécutent.
Vérifie que tu as compris
Dans le job de gauche (Ruby), que contient la clé script ?
Vérifie que tu as compris
Dans le second exemple, quelle image sert à exécuter python setup.py wheel ?