# OASB — guide technique

## Démarrage local

```bash
docker compose up -d
docker compose exec app composer install
```

L’application est exposée sur <http://localhost:8081>. MySQL est fourni par le
service Docker `db`; la configuration locale ne doit pas pointer vers une base
MySQL installée sur l’hôte.

## Tests et contrôles qualité

L’environnement `test` ajoute automatiquement le suffixe `_test` au nom de base
défini dans `DATABASE_URL`. Avec la configuration locale, PHPUnit utilise donc
exclusivement `oasb_test`.

```bash
docker compose exec app composer test
docker compose exec app composer phpstan
docker compose exec app composer lint
docker compose exec app composer check
```

`composer check` exécute les lints Symfony, PHPStan niveau 4, PHPUnit et l’audit
Composer.

## Intégration continue

Le workflow GitHub Actions est déclenché pour chaque push et pull request. Il
installe les dépendances depuis `composer.lock`, utilise une base MySQL 8.4
éphémère `oasb_test`, rejoue toutes les migrations, valide Doctrine, puis lance
les lints, PHPStan, PHPUnit et Composer Audit. Un second job vérifie que l’image
Docker peut être construite; aucune image n’est publiée et aucun déploiement
n’est effectué.
