# ============================================================ # CI β€” IntΓ©gration Continue # Se dΓ©clenche sur chaque push et chaque Pull Request. # Lance les tests PHPUnit avec SQLite en mΓ©moire (rapide). # ============================================================ name: CI on: push: branches: - '**' # tous les branches pull_request: branches: - main - develop jobs: test: name: πŸ§ͺ Tests Laravel (PHP ${{ matrix.php }}) runs-on: ubuntu-latest strategy: fail-fast: false matrix: php: ['8.3'] # Ajoute d'autres versions si tu veux tester plusieurs PHP steps: # ── 1. RΓ©cupΓ¨re le code ───────────────────────────────── - name: πŸ“₯ Checkout du code uses: actions/checkout@v4 # ── 2. Configure PHP avec les extensions nΓ©cessaires ──── - name: 🐘 Setup PHP ${{ matrix.php }} uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} extensions: mbstring, bcmath, sqlite3, pdo_sqlite, pgsql, pdo_pgsql, xml, curl, zip, gd, intl coverage: none # met "xdebug" ici si tu veux du coverage # ── 3. Cache des dΓ©pendances Composer ─────────────────── - name: πŸ“¦ Cache Composer uses: actions/cache@v4 with: path: vendor key: composer-${{ matrix.php }}-${{ hashFiles('composer.lock') }} restore-keys: composer-${{ matrix.php }}- # ── 4. Installe les dΓ©pendances PHP ───────────────────── - name: πŸ“¦ Installation Composer run: composer install --no-interaction --prefer-dist --optimize-autoloader --no-scripts # ── 5. PrΓ©pare l'environnement .env de test ───────────── - name: βš™οΈ Configuration .env run: | cp .env.example .env # On Γ©crase les variables critiques pour les tests echo "APP_ENV=testing" >> .env echo "APP_KEY=" >> .env echo "DB_CONNECTION=sqlite" >> .env echo "DB_DATABASE=:memory:" >> .env echo "QUEUE_CONNECTION=sync" >> .env echo "SESSION_DRIVER=array" >> .env echo "CACHE_STORE=array" >> .env echo "MAIL_MAILER=array" >> .env echo "BROADCAST_CONNECTION=null" >> .env # ── 6. GΓ©nΓ¨re la clΓ© d'application ────────────────────── - name: πŸ”‘ GΓ©nΓ©ration de la clΓ© APP_KEY run: php artisan key:generate --ansi # ── 7. ExΓ©cute les migrations (SQLite :memory:) ───────── - name: πŸ—„οΈ Migrations run: php artisan migrate --force --ansi # ── 8. Lance les tests ─────────────────────────────────── - name: βœ… Tests PHPUnit run: php artisan test --ansi