---
description: "Vérifie que le projet est prêt pour le déploiement"
disable-model-invocation: true
---

# /deploy — Préparation déploiement

Vérifie que le projet est prêt pour le déploiement via GitLab CI. Cette commande est **informative uniquement** — le déploiement réel passe par GitLab CI (push sur `main` = staging auto, production = approbation manuelle).

## Checklist

### 1. Changements non commités

```bash
git status --porcelain
```

Si des fichiers sont modifiés ou non trackés, avertir et suggérer `/finalize` puis `/commit`.

### 2. Branche courante

```bash
git branch --show-current
```

Le déploiement se fait depuis `main`. Si on est sur une autre branche, avertir.

### 3. Synchronisation avec le remote

```bash
git fetch origin
git log HEAD..origin/main --oneline
git log origin/main..HEAD --oneline
```

Vérifier que la branche locale est synchronisée :
- Commits en retard → suggérer `git pull`
- Commits en avance → suggérer `git push`

### 4. Cohérence du système Composer dual (CRITIQUE pour easebook)

```bash
diff composer.json composer-prod.json
```

Le diff DOIT être vide. Si non vide → **FAIL** : `composer.json` n'est pas en mode prod, la CI va planter à `composer install`.

```bash
ls packages/
```

Doit contenir `advanced-custom-fields-pro/`, `real3d-flipbook/`, `real3d-flipbook-page-editor/`. Sinon, la tâche `deploy:plugins:manual` va échouer en CI.

### 5. Build frontend

```bash
ddev exec npm --prefix web/app/themes/ebook-viewer run build
```

Vérifier que le build passe sans erreur.

### 6. Pint (test)

```bash
ddev exec vendor/bin/pint --test
```

Vérifier que le code respecte les conventions.

## Rapport

```markdown
## Checklist déploiement

| Vérification | Statut |
|---|---|
| Changements non commités | OK / WARN |
| Branche main | OK / WARN |
| Sync remote | OK / WARN |
| composer.json = composer-prod.json | OK / FAIL |
| packages/ contient les 3 premium | OK / FAIL |
| Build frontend | OK / FAIL |
| Pint | OK / FAIL |

### Actions requises
- (liste des actions à effectuer avant déploiement)

### Prêt pour le déploiement
OUI / NON
```

## Rappel

- **Staging** : déploiement automatique sur push `main`
- **Production** : déploiement manuel avec approbation dans GitLab CI
- Le build des assets est fait localement puis copié par Deployer
- La tâche `deploy:plugins:manual` (`deploy.php:80-85`) copie `packages/{3 premium}/` sur le serveur
