feat: Mise en place de PHPUnit et d'une pipeline CI/CD GitHub Actions

Ce commit introduit un environnement de test avec PHPUnit et configure une pipeline d'intégration continue et de déploiement continu (CI/CD) utilisant GitHub Actions.

Les changements suivants ont été apportés :

1.  **Configuration de PHPUnit** :
    *   Ajout d'un fichier `php/composer.json` pour gérer les dépendances PHP, avec PHPUnit inclus comme dépendance de développement.
    *   Création d'un fichier de configuration `php/phpunit.xml.dist` pour PHPUnit.
    *   Mise à jour du `php/Dockerfile` pour installer Composer et les dépendances du projet (y compris celles de développement) lors de la construction de l'image Docker.

2.  **Premier Test** :
    *   Création d'un répertoire `php/tests/` pour héberger les tests.
    *   Ajout d'un test unitaire initial (`php/tests/Utils/DarkModeTest.php`) pour la classe `App\Utils\DarkMode` afin de valider la configuration des tests.

3.  **Pipeline CI/CD avec GitHub Actions** :
    *   Création d'un workflow GitHub Actions dans `.github/workflows/ci.yml`.
    *   La pipeline se déclenche sur les `push` et `pull_request` vers la branche `main`.
    *   Elle installe PHP, met en cache les dépendances Composer, installe les dépendances et exécute la suite de tests PHPUnit.

4.  **Documentation** :
    *   Mise à jour des fichiers `README.md` et `docs/languages/README.fr.md` pour inclure des instructions sur la manière d'exécuter les tests localement et une description de la nouvelle pipeline CI/CD.

Ces ajouts permettent d'améliorer la qualité du code en automatisant les tests et en s'assurant qu'aucune régression fonctionnelle n'est introduite lors de futurs développements.
This commit is contained in:
google-labs-jules[bot]
2025-06-16 12:08:59 +00:00
parent 4646d29238
commit e7d9dc07f0
7 changed files with 125 additions and 2 deletions

35
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,35 @@
name: PHP CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.3' # ou la version que vous utilisez
extensions: mbstring, xml, pdo, zip, intl # Ajoutez les extensions nécessaires
tools: composer # Installe Composer
- name: Cache Composer dependencies
uses: actions/cache@v3
with:
path: php/vendor # Le chemin vers le répertoire vendor dans php/
key: ${{ runner.os }}-composer-${{ hashFiles('php/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Install Composer dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist --working-dir=php
- name: Run PHPUnit tests
run: php/vendor/bin/phpunit --configuration php/phpunit.xml.dist