Administration Système et Devops – TP 5

Prise en main de GitLab et sa CI

2025-2026

1. GitLab

  1. Rendez-vous sur https://gitlab.bordeaux-inp.fr.
  2. Configurez SSH :
  3. En utilisant le bouton “+” en haut à droite, créez un “Nouveau projet/dépôt”.
  4. Clonez le dépôt avec SSH.
  5. Remplacez le contenu initial du dépôt par les fichiers contenus dans cette archive.
  6. Committez et pushez.
  7. Depuis GitLab, créez un ticket pour demander de corriger le titre du fichier README.md par votre login.
  8. Faites un commit qui corrige le titre en utilisant la syntaxe pour fermer automatiquement le ticket.

2. Parenthèse sur la gestion des dépendances et les tests

Pas spécifique à Python : PHP, JavaScript, Java, Ruby, Rust, Go, … (mais pas universel non plus).

  1. En suivant les instructions dans le fichier README.md, créez l’environnement virtuel, installez les dépendances et exécutez le script d’exemple fourni.
  2. Observez comment sont écrits les tests et lancez-les.

3. Contribution à un dépôt par des merge requests

À faire en binôme : A va contribuer au dépôt de B.

  1. A clone le dépôt de B.
  2. Depuis l’interface web, A forke le dépôt de B
  3. A ajoute comme remote à son dépôt cloné le fork réalisé à l’étape précédente.
  4. A crée une branche (et bascule dessus) pour ajouter la multiplication de matrice par un scalaire :
  5. Depuis l’interface web, A crée maintenant une Merge Request vers le dépôt de B.
  6. B passe en revue la merge request et laisse un commentaire (sur le code) pour demander la modification de la typo.
  7. A corrige la typo. Deux possibilités :
  8. Pendant ce temps, B pushe un commit vers son dépôt qui modifie le fichier README.md.
  9. La branche de A n’est donc plus à jour : elle a comme point de départ un ancien commit. Deux possibilités :
  10. B accepte la merge request de A.

Note : une autre façon de contribuer à un dépôt et que le propriétaire du dépôt nous ajoute comme membre du dépôt.

4. Mise en place de la CI

Individuellement sur son propre dépôt :

  1. Ajoutez le fichier .gitlab-ci.yml à la racine de votre dépôt avec le contenu suivant :

    tests:
      image: python:3.14
    
      script:
        - python -V
        - pip install -r requirements.txt # pas besoin d'environnement virtuel ici
        - # à completer pour exécuter les tests
  2. Committez, pushez : explorez dans l’interface web comment la CI est exécutée.

  3. Faites un commit qui casse les tests, committez, pushez : observez comment la CI échoue.

On reprend en binôme :

  1. A fait une merge request pour réparer le dépôt.
  2. B accepte la merge request.

5. Un pipeline de CI avec plusieurs jobs

Individuellement sur son propre dépôt :

  1. Mettez en place Black pour votre projet pour faire respecter le style de code.
  2. Ajoutez à la CI un job qui exécute black. Ce job sera différent du job qui exécute les tests.
  3. Committez, pushez : observez comment la CI exécute ce pipeline avec deux jobs.

6. Génération de la documentation sous forme de site web

  1. Mettez en place Sphinx pour générer la documentation de votre projet :

    sphinx-quickstart doc
    > Séparer les répertoires source et de sortie (y/n) [n]: y
    > Nom du projet: MatrixEirb
    > Nom(s) de(s) l'auteur(s): Toto
    > Version du projet []: 0.0.1
    > Langue du projet [en]: fr
  2. Ajoutez un job à la CI pour générer la documentation et la rendre disponible à l’adresse https://login.pages.bordeaux-inp.fr/login-pymatrix/

7. Mesure du taux de couverture des tests

  1. Mettez en place coveragepy pour mesurer le taux de couverture des test.
  2. Modifiez la CI pour que le taux de couverture y soit mesuré et que GitLab puisse récupérer cette valeur (cherchez la clé coverage).
  3. Ajoutez à votre README le badge qui indique l’état de la CI et le taux de couverture.
  4. Ajoutez un test qui couvre la fonction que vous avez rajouté, et constatez que votre taux de couverture augmente.