OS de votre poste :
Module 04 · Git & GitHub · TP 05

TP-05 — Tests, lint et variables

Objectifs et cours associés

Exécuter des contrôles de qualité Python dans GitHub Actions.

Pour réviser les notions utilisées dans ce TP :

Préparation

Prérequis

Configuration pour Linux

Git installé et accès à GitHub pour les TP distants.

Guide : Préparer Git

Ouvrir le terminal Linux avec student.

Terminal Linux

su - student

Si student est déjà connecté, conserver cette session.

Dépendances

Configuration pour Linux

Avec le compte de travail, créer le dossier du TP puis s’y placer :

Terminal Linux

mkdir -p ~/devops-formation/tp-04-05
cd ~/devops-formation/tp-04-05

Si ce dossier existe, inspecter les anciens fichiers avant de reprendre.

Aucun service Linux à installer pour ce TP. Les commandes Git s’exécutent dans le terminal préparé ci-dessus.

Réutiliser le dépôt du parcours Git indiqué dans les étapes ; ne pas créer un dépôt concurrent vide. GitHub est le dépôt distant utilisé pour les push.

Étape 1 : Créer les tests

mkdir -p tests .github/workflows
cat > tests/test_calcul.py <<'EOF'
def test_addition():
    assert 2 + 4 == 6


def test_soustraction():
    assert 2 - 4 == -2


def test_multiplication():
    assert 2 * 4 == 8


def test_salutation():
    assert "hello" == "hello"
EOF
vim .github/workflows/qualite.yml
name: Qualité Python
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
  workflow_dispatch:
permissions:
  contents: read
jobs:
  qa:
    runs-on: ubuntu-24.04
    steps:
      - name: Récupérer le dépôt
        uses: actions/checkout@v7
      - name: Choisir Python
        uses: actions/setup-python@v7
        with:
          python-version: '3.13'
      - name: Installer les outils
        run: python -m pip install pytest flake8
      - name: Tester
        run: python -m pytest -q
      - name: Vérifier le style
        run: python -m flake8 tests

Étape 2 : Publier et vérifier

git add tests/test_calcul.py .github/workflows/qualite.yml
git commit -m "Ajoute tests et contrôle de style"
git push

Dans Actions, le job qa récupère le code, choisit Python, installe les outils puis exécute les tests et le lint. Résultat attendu : quatre tests réussis ; Flake8 n’affiche aucun problème.

Étape 3 : Distinguer test et lint

Dans une branche de TP, changer une valeur attendue pour faire échouer une assertion, publier et lire le détail pytest. Corriger. Ensuite ajouter un import inutilisé, publier : les tests peuvent réussir tandis que Flake8 retourne F401. Corriger avant fusion et vérifier que la PR est verte.

Étape 4 : Observer les portées sans secret

Ajouter ce workflow séparé à .github/workflows/variables.yml, puis commit/push et lancer manuellement.

name: Variables
on: workflow_dispatch
permissions:
  contents: read
env:
  DAY_OF_WEEK: Lundi
jobs:
  greeting:
    runs-on: ubuntu-24.04
    env:
      Greeting: Salut
    steps:
      - run: echo "$Greeting $First_Name. Nous sommes $DAY_OF_WEEK"
        env:
          First_Name: Mona

Sortie attendue : Salut Mona. Nous sommes Lundi. Les trois valeurs proviennent respectivement du job, de l’étape et du workflow. Aucun identifiant confidentiel n’est nécessaire pour ce TP.

Nettoyage

Dépendances

Configuration pour Linux

Linux : effectuer le nettoyage du dépôt dans le terminal natif. Ne pas supprimer ~/.gitconfig, ~/.ssh ou les paquets utilisés par d’autres projets.

Nettoyage et conservation de l’environnement

Conserver le dépôt de formation utilisé par les TP suivants et vos preuves de validation. Retirer les réglages temporaires de diagnostic, fermer les sessions et vérifier git status. À la fin de la séquence, supprimer seulement le clone et les ressources GitHub créés pour la formation après sauvegarde ; ne pas toucher aux projets personnels, à la configuration globale de Git ni aux clés SSH réutilisées. Si une clé ou un jeton était exclusivement dédié au TP, le révoquer côté GitHub avant de retirer sa copie locale.

Prérequis

Configuration pour Linux

Conserver Git et le dépôt du parcours pour les TP suivants. Le retrait éventuel des outils se décide après sauvegarde des travaux.

Guide : Préparer Git