mirror of
https://github.com/tips-of-mine/gestion-certificats2.git
synced 2025-06-28 08:08:43 +02:00
![google-labs-jules[bot]](/assets/img/avatar_default.png)
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.
59 lines
1.4 KiB
Docker
59 lines
1.4 KiB
Docker
FROM php:8.3-fpm
|
|
|
|
# Installer les dépendances système nécessaires
|
|
RUN apt-get update && apt-get install -y \
|
|
build-essential \
|
|
libpng-dev \
|
|
libjpeg62-turbo-dev \
|
|
libfreetype6-dev \
|
|
locales \
|
|
zip \
|
|
jpegoptim optipng pngquant gifsicle \
|
|
vim \
|
|
unzip \
|
|
git \
|
|
curl \
|
|
libzip-dev \
|
|
libonig-dev \
|
|
mysql-common \
|
|
libldap2-dev \
|
|
libicu-dev \
|
|
openssl \
|
|
ca-certificates
|
|
|
|
# libpq-dev \
|
|
# libzip-dev \
|
|
# libicu-devel \
|
|
# unzip \
|
|
# git \
|
|
# openssl \
|
|
# Ajout de ca-certificates pour les opérations SSL/TLS
|
|
# ca-certificates \
|
|
# && rm -rf /var/lib/apt/lists/*
|
|
|
|
# Installer les extensions PHP nécessaires
|
|
# pdo_mysql pour la connexion à MySQL
|
|
# opcache pour améliorer les performances de PHP
|
|
# zip pour les opérations d'archive
|
|
# intl pour l'internationalisation
|
|
RUN docker-php-ext-install pdo_mysql opcache zip intl
|
|
|
|
# Copier le fichier de configuration PHP personnalisé
|
|
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
|
|
|
|
# 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
|