À l'issue de cette section, vous aurez découvert :

Présentation des nouveautés sur la branche de ce TP

Pour ce TP, changer de branche :

git checkout 1_starting_ci

Sur cette branche, il y a maintenant :

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
onglet Actions

❌Malheureusement, le pipeline a échoué ...

pipeline tests rouge

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.

Exemple décrit en Python

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 :

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