mirror of
https://github.com/tips-of-mine/gestion-certificats2.git
synced 2025-06-28 06:58:43 +02:00
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:
@ -44,8 +44,15 @@ COPY php.ini /usr/local/etc/php/conf.d/40-custom.ini
|
||||
# Définir le répertoire de travail par défaut
|
||||
WORKDIR /var/www/html
|
||||
|
||||
# Optionnel: Installer Composer si vous utilisez un framework PHP plus avancé
|
||||
# COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
||||
# Installer Composer
|
||||
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
||||
|
||||
# Copier les fichiers de dépendances et installer les dépendances PHP
|
||||
COPY composer.json composer.lock* ./
|
||||
RUN composer install --no-dev --optimize-autoloader
|
||||
|
||||
# Copier le reste des fichiers de l'application
|
||||
COPY . .
|
||||
|
||||
# Exposer le port FPM (le port 9000 est le port par défaut pour PHP-FPM)
|
||||
EXPOSE 9000
|
||||
|
13
php/composer.json
Normal file
13
php/composer.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^9.5"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"App\\": "src/"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"test": "phpunit"
|
||||
}
|
||||
}
|
16
php/phpunit.xml.dist
Normal file
16
php/phpunit.xml.dist
Normal file
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.5/phpunit.xsd"
|
||||
bootstrap="vendor/autoload.php"
|
||||
colors="true">
|
||||
<testsuites>
|
||||
<testsuite name="App Test Suite">
|
||||
<directory>tests</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
<coverage processUncoveredFiles="true">
|
||||
<include>
|
||||
<directory suffix=".php">src</directory>
|
||||
</include>
|
||||
</coverage>
|
||||
</phpunit>
|
15
php/tests/Utils/DarkModeTest.php
Normal file
15
php/tests/Utils/DarkModeTest.php
Normal file
@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace App\Tests\Utils;
|
||||
|
||||
use App\Utils\DarkMode;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class DarkModeTest extends TestCase
|
||||
{
|
||||
public function testIsDarkModeByDefault()
|
||||
{
|
||||
$darkMode = new DarkMode();
|
||||
$this->assertFalse($darkMode->isDarkModeByDefault(), "DarkMode should not be enabled by default.");
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user