ci.yml,Pour ce TP, changer de branche :
git checkout 1_starting_ci
Sur cette branche, il y a maintenant :
.github/workflows/ci.yml qui ,contient le squelette d'une CI.Un pipeline de CI est déjà présent dans ce repo, nous allons l'exécuter.
Comme vous avez forké un repo existant, github actions a besoin d'une notification de création de fichier dans .github/workflows
pour qu'il détecte qu'il y a une CI à exécuter.
Pour cela, renommez le fichier ci.yml en ci-workflow.yml. (Le fichier peut avoir n'importe quel nom, tant qu'il est dans le bon repository cela marchera).
mv .github/workflows/ci.yml .github/workflows/ci-workflow.yml
Commitez et pushez ce changement
git add .github/workflows/ci-workflow.yml
git commit -m "Rename workflow file"
git push
Comme il s'agit de notre premier commit, il va falloir définir notre nom et notre adresse email :
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
Pour push, Git demandera vos identifiants et un mot de passe. Le mot de passe est le token que vous avez généré au TP0.
Une alternative est de mettre en place une clef SSH.
Puis allez dans l'onglet github actions
❌Malheureusement, le pipeline a échoué ...

Il va falloir le faire passer au vert !
Github actions est un outil mis à disposition de Github pour construire des pipelines de traitements.
Ces pipelines peuvent être utilisés à des fins d'intégration continue.
Le pipeline est décrit au travers de code, dans un fichier dans le dossier .github/workflows en langage
YAML, une spec de configuration similaire au JSON.
La documentation des github Actions ainsi que les mot-clefs utilisables dans les workflows sont consultables sur ce tutoriel.
Un exemple officiel en Python est disponible sur le repository Github: ici, nous allons le décrire brièvement ci-après:
# Nom du workflow tel que visible dans l'interface
name: Python package
# Evènements qui vont lancer la CI
on: [push]
jobs:
build:
# Configuration de la machine utilisée pour lancer la CI
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.11", "3.12", "3.13", "3.14"]
steps:
# Pull du code
- uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install the code linting and formatting tool Ruff
run: pipx install ruff
- name: Lint code with Ruff
run: ruff check --output-format=github --target-version=py39
- name: Check code formatting with Ruff
run: ruff format --diff --target-version=py39
continue-on-error: true
- name: Test with pytest
run: pytest
Votre mission si vous l'acceptez : éditez le fichier .github/workflow/ci-workflow.yml à la racine du repository pour exécuter les tests avec succès et faire passer le pipeline au vert ✅.
Une fois que vous aurez apporté vos modifications, vous devrez commiter cela sur github.
Vous pourrez ensuite commit et push
Ajouter à votre CI :
ruff (disponible sur pypi)vulture (disponible sur pypi)Vous pouvez creuser la façon d'ajouter des étapes sur votre pipeline avec cette documentation.
Finalement, vous pouvez explorer comment ajouter des vérifications de sécurité dans votre CI avec le template SAST en lisant cette documentation.
Les instructions du tp suivant sont ici