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 Windows
Git installé et accès à GitHub pour les TP distants.
Ouvrir Git Bash sur le poste.
Configuration pour Linux
Git installé et accès à GitHub pour les TP distants.
Ouvrir le terminal Linux avec student.
Terminal Linux
su - studentSi student est déjà connecté, conserver cette session.
Dépendances
Configuration pour Windows
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-05Si 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.
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-05Si 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.ymlname: 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 pushDans 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: MonaSortie 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 Windows
Windows : effectuer le nettoyage du dépôt dans Git Bash, puis fermer Git Bash. Ne pas supprimer les fichiers de configuration du profil Windows ou une clé SSH personnelle.
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.
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 Windows
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.
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.