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 · Aller plus loin

Artifacts, needs, dependencies et autres mots-clés

Artifacts

Les artéfacts permettent de sauvegarder les fichiers produits par un job. Ils peuvent être passés d'un job à l'autre, ajoutés à une release, téléchargés depuis la page de la pipeline. Si ce sont des rapports, GitLab sait les interpréter. Dans l'exemple du cours, paths garde les fichiers de build, et reports: junit fournit le rapport de tests :

gradle-build:
  stage: build-java
  script: ./gradlew build
  artifacts:
    paths:
      - build/libs

gradle-test:
  stage: test-java
  script: ./gradlew test
  needs: ["gradle-build"]
  dependencies: ["gradle-build"]
  artifacts:
    reports:
      junit: "**/build/test-results/test/**/TEST-*.xml"

Vérifie que tu as compris

Dans l'exemple, quel job produit un rapport de tests que GitLab peut interpréter ?

Needs et dependencies

  • needs spécifie les dépendances entre jobs et active l'exécution parallèle des stages : un job démarre dès que ceux dont il dépend ont fini, sans attendre tout le stage précédent.
  • dependencies précise qu'un job doit récupérer les artéfacts d'un job dont il dépend. Si on ne précise rien, tous les artéfacts sont récupérés.

Dans l'exemple, gradle-test déclare needs: ["gradle-build"] et dependencies: ["gradle-build"] : il attend gradle-build et ne télécharge que ses artéfacts.

Vérifie que tu as compris

Que se passe-t-il si un job ne précise pas dependencies ?

Vérifie que tu as compris

Quel mot-clé sert à déclarer qu'un job dépend d'un autre et à permettre l'exécution parallèle des stages ?

Autres mots-clés cités

Mot-cléRôle
cachecache persistant d'une pipeline à l'autre
coveragedétection des rapports de couverture de test
environmentdéclaration de l'environnement de déploiement
whencondition d'exécution
parallelplusieurs instances du job en parallèle, avec des variables différentes
releasecréation d'une release
servicesconteneur de service lancé en parallèle (ex. une base de données)
variablesvariables d'environnement

Vérifie que tu as compris

Quel mot-clé permet de lancer une base de données dans un conteneur parallèle au job ?