Aller au contenu
Apprendre.
  • M1 · toutes les matières15 matières : Préparation de données, API & sécurité, CI/CD, Docker, Merise, Dataviz, KNIME, ML appliqué : projet LoL, SQL & UML, SQL avancé, Machine Learning, Git, IA frugale & responsable, Qualité des données, MathématiquesAnnée
  • M2 · toutes les matières4 matières : Deep Learning, AI Act, Comex & Fundraising, Gouvernance & DataMeshAnnée
  • Deep LearningM2 · 4 modules · Réseaux de neurones, CNN, texte, modèles génératifs.Matière
  • Préparation de donnéesM1 · 3 modules · Nettoyer, transformer et fusionner des données avec Python.Matière
  • API & sécuritéM1 · 2 modules · Consommer, concevoir et sécuriser des API.Matière
  • CI/CDM1 · 1 module · Intégration et livraison continues.Matière
  • DockerM1 · 3 modules · Conteneurs, images, volumes, réseaux, Compose.Matière
  • MeriseM1 · 2 modules · Modéliser une base : MCD, MLD, MPD.Matière
  • DatavizM1 · 2 modules · Visualiser pour comprendre et décider.Matière
  • KNIMEM1 · 1 module · Explorer et nettoyer des données en workflow.Matière
  • ML appliqué : projet LoLM1 · 2 modules · Du besoin métier au POC de vision par ordinateur.Matière
  • SQL & UMLM1 · 3 modules · Modèles UML et requêtes SQL.Matière
  • SQL avancéM1 · 3 modules · Jointures, fenêtres, CTE, optimisation.Matière
  • Machine LearningM1 · 3 modules · Régression, classification, segmentation, projet.Matière

↑↓ naviguer↵ ouvre le résultat en surbrillanceesc fermer

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 ;
  • image et variables : 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 ?