Intégration continue
L’intégration continue (CI, Continuous Integration) consiste à vérifier automatiquement les changements proposés au projet. Une CI peut installer les dépendances, lancer les tests, vérifier le formatage et construire l’application.
L’objectif est de détecter rapidement une régression, avant la fusion dans main.
GitHub Actions
GitHub Actions exécute des workflows décrits dans des fichiers YAML placés dans .github/workflows/. Créez par exemple .github/workflows/tests.yml :
Le workflow ci-dessous s’exécute sur un runner Linux hébergé par GitHub. Il reste donc identique quel que soit le système utilisé sur votre ordinateur.
name: Tests
on:
push:
branches: [main]
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Récupérer le dépôt
uses: actions/checkout@v4
- name: Installer Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Installer les dépendances
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Lancer les tests
run: pytest
Lire un workflow
-
nameest le nom affiché dans l’onglet Actions. -
ondéfinit les événements qui déclenchent le workflow. -
jobsregroupe les tâches exécutées. -
runs-onchoisit l’environnement d’exécution. -
stepsdécrit les étapes, avec une actionusesou une commanderun.
Chaque exécution est associée à un commit précis, ce qui permet de retrouver le contexte d’un échec.
Secrets et variables
Les informations sensibles doivent être stockées dans les Secrets and variables du dépôt ou de l’organisation :
env:
API_TOKEN: $
Ne faites jamais afficher un secret dans une commande ou un message de debug. Limitez aussi les permissions du jeton au strict nécessaire.
CI et Pull Requests
Configurez les règles de protection de main pour demander le succès du workflow avant fusion. Une CI utile doit être reproductible, suffisamment rapide et explicite lorsqu’un test échoue.
La CI ne remplace pas une revue de code ni les tests manuels nécessaires à l’interface utilisateur.
Exercice
- Ajoutez un workflow de test à un dépôt d’exemple.
- Provoquez volontairement un échec de test et observez le journal dans l’onglet Actions.
- Corrigez le test et vérifiez que le workflow repasse au vert.
- Ouvrez une Pull Request et vérifiez que le résultat de la CI est visible avant la fusion.
À retenir
Un workflow GitHub Actions est un fichier versionné comme le code. Chaque modification de ce fichier doit donc être relue avec la même attention qu’une modification applicative.