Sobes.tech
Junior

Que se passe-t-il après que GitLab a téléchargé le code?

sobes.tech IA

Réponse de l'IA

Après avoir téléchargé le code (clonage du dépôt), GitLab CI/CD exécute un pipeline — un ensemble de tâches (jobs) et d’étapes (stages), définis dans le fichier .gitlab-ci.yml à la racine du dépôt.

Les principales étapes d’un pipeline typique après le téléchargement du code :

  1. Stages : Le pipeline est divisé en étapes, qui s’exécutent successivement. Les tâches dans une même étape peuvent s’exécuter en parallèle.
  2. Jobs : Chaque tâche s’exécute dans un Runner séparé. Un Runner est un agent qui récupère le travail de GitLab CI/CD et l’exécute.
  3. Commands : Au sein de chaque tâche, des commandes spécifiées dans la section script du .gitlab-ci.yml sont exécutées. Ces commandes peuvent inclure :
    • La compilation du projet (par exemple, compilation du code, empaquetage des artefacts).
    • L’exécution de tests (unitaires, d’intégration, etc.).
    • La vérification de la qualité du code (linting, analyse statique).
    • La création d’images Docker.
    • Le déploiement dans des environnements de test, staging ou production.
    • D’autres actions nécessaires.
  4. Dependencies (Dépendances) : Les tâches peuvent dépendre des résultats des tâches précédentes, en utilisant le mot-clé needs.
  5. Artifacts (Artefacts) : Les résultats des tâches (par exemple, code compilé, rapports de tests, images Docker) peuvent être sauvegardés en tant qu’artefacts, accessibles en téléchargement ou utilisés dans des tâches ultérieures.
  6. Caching (Mise en cache) : Les dépendances ou fichiers temporaires peuvent être mis en cache entre les exécutions pour accélérer le processus.
  7. Reporting (Rapports) : Les résultats de l’exécution (succès/échec), logs et artefacts sont accessibles via l’interface GitLab.

Structure approximative du .gitlab-ci.yml :

stages: # Définition des étapes
  - build
  - test
  - deploy

build_job: # Définition de la tâche
  stage: build # Appartenance à l’étape
  script: # Commandes à exécuter
    - echo "Construction du projet..."
    - mvn package # Exemple de commande de build avec Maven
  artifacts: # Sauvegarde des artefacts
    paths:
      - target/*.jar

test_job:
  stage: test
  script:
    - echo "Exécution des tests..."
    - mvn test # Exemple de commande pour lancer les tests
  needs: # Dépendance à la tâche précédente
    - build_job

deploy_job:
  stage: deploy
  script:
    - echo "Déploiement de l’application..."
    - docker build -t my-app . # Exemple de build d’image Docker
    - docker push my-app # Exemple d’envoi de l’image vers le dépôt
  only: # Condition pour exécuter la tâche
    - main # Seulement lors d’un commit sur la branche main

Ainsi, après le téléchargement du code, GitLab CI/CD orchestre l’exécution d’un processus défini par l’utilisateur, visant à construire, tester et déployer l’application.