# RP - Déploiement en pré-production

**Runbook, Mai 2025. Workflow de déploiement en pré-production, de la PR validée jusqu'à l'exécution du script Deployer.**

<p class="callout warning"><span style="white-space: pre-wrap;">Certaines étapes de ce workflow sont </span>****temporaires****<span style="white-space: pre-wrap;"> et seront remplacées par un déclenchement à distance via </span>****workflow\_dispatch GitHub Actions****<span style="white-space: pre-wrap;"> (prévu dans un prochain sprint tech).</span></p>

---

#### <span style="white-space: pre-wrap;">Étape 1 - Merger la PR vers </span>`<span class="editor-theme-code">dev</span>`

<span style="white-space: pre-wrap;">Une fois la PR approuvée par les pairs, effectuer le merge dans </span>`<span class="editor-theme-code">dev</span>`<span style="white-space: pre-wrap;"> via GitHub.</span>

---

#### Étape 2 - Prévenir l'équipe sur Slack

<span style="white-space: pre-wrap;">Envoyer un message dans le salon </span>****\#équipe\_technico\_santé****<span style="white-space: pre-wrap;"> pour signaler le déploiement imminent :</span>

> ![:fusée:](https://a.slack-edge.com/production-standard-emoji-assets/15.0/apple-medium/1f680.png)<span style="white-space: pre-wrap;"> Déploiement de RP en PP en cours ...</span>

---

#### Étape 3 - Mettre à jour l'environnement local

<span style="white-space: pre-wrap;">Basculer sur la branche </span>`<span class="editor-theme-code">dev</span>`, la mettre à jour et synchroniser les dépendances :

```
git checkout dev
git pull
composer install
symfony console cache:clear
```

---

#### <span style="white-space: pre-wrap;">Étape 4 - Modifier temporairement </span>`<span class="editor-theme-code">deploy.php</span>`<span style="white-space: pre-wrap;"> </span>**(temporaire, uniquement pour Reconnect Pro)**

<p class="callout danger">****Ne pas committer cette modification.****<span style="white-space: pre-wrap;"> Cette étape est vouée à disparaître avec l'arrivée du workflow\_dispatch.</span></p>

<span style="white-space: pre-wrap;">Dans </span>`<span class="editor-theme-code">deploy.php</span>`<span style="white-space: pre-wrap;"> à la racine du projet, localiser la tâche </span>`<span class="editor-theme-code">deploy:restart_workers</span>`<span style="white-space: pre-wrap;"> et adapter les lignes commentées pour cibler la pré-production :</span>

- ****Commenter****<span style="white-space: pre-wrap;"> la ligne </span>`<span class="editor-theme-code">sudo systemctl restart messenger_worker@*.service</span>`
- ****Décommenter****<span style="white-space: pre-wrap;"> les 3 lignes suivantes :</span>
    - `<span class="editor-theme-code">sudo systemctl restart messenger_worker_async@*.service</span>`
    - `<span class="editor-theme-code">sudo systemctl restart messenger_worker_dmp@*.service</span>`
    - `<span class="editor-theme-code">sudo systemctl restart messenger_worker_export@*.service</span>`

<details id="bkmrk-deploy-restart-workers"><summary>****Voir l'état attendu du bloc dans deploy.php****</summary>

  
task('deploy:restart\_workers', function () {  
// run('sudo systemctl restart messenger\_worker@\*.service');  
<span style="white-space: pre-wrap;"> run('sudo systemctl restart messenger\_worker\_async@\*.service');</span>  
<span style="white-space: pre-wrap;"> run('sudo systemctl restart messenger\_worker\_dmp@\*.service');</span>  
<span style="white-space: pre-wrap;"> run('sudo systemctl restart messenger\_worker\_export@\*.service');</span>  
});

</details>---

#### Étape 5 - Lancer le déploiement

Exécuter le script de déploiement via :

```
make deploy-preprod
```

---

#### <span style="white-space: pre-wrap;">Étape 6 - Valider le déploiement et rétablir </span>`<span class="editor-theme-code">deploy.php</span>`

<span style="white-space: pre-wrap;">Poster un message de confirmation dans le salon </span>****\#équipe\_technico\_santé****<span style="white-space: pre-wrap;"> :</span>

> ![]()<span style="white-space: pre-wrap;">Déploiement de RP en PP </span>![:fusée:](https://a.slack-edge.com/production-standard-emoji-assets/15.0/apple-medium/1f680.png)

<span style="white-space: pre-wrap;">Puis </span>****rétablir**** <span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">deploy.php</span>`<span style="white-space: pre-wrap;"> dans son état d'origine :</span>

- ****Décommenter****<span style="white-space: pre-wrap;"> la ligne </span>`<span class="editor-theme-code">sudo systemctl restart messenger_worker@*.service</span>`
- ****Commenter****<span style="white-space: pre-wrap;"> les 3 lignes pré-production :</span>
    - `<span class="editor-theme-code">sudo systemctl restart messenger_worker_async@*.service</span>`
    - `<span class="editor-theme-code">sudo systemctl restart messenger_worker_dmp@*.service</span>`
    - `<span class="editor-theme-code">sudo systemctl restart messenger_worker_export@*.service</span>`

<p class="callout danger">****Ne pas committer cette modification.****<span style="white-space: pre-wrap;"> Le fichier doit rester dans son état production pour tout déploiement ultérieur.</span></p>

<details id="bkmrk-deploy-restore-prod"><summary>****Voir l'état attendu du bloc rétabli****</summary>

  
task('deploy:restart\_workers', function () {  
<span style="white-space: pre-wrap;"> run('sudo systemctl restart messenger\_worker@\*.service');</span>  
// run('sudo systemctl restart messenger\_worker\_async@\*.service');  
// run('sudo systemctl restart messenger\_worker\_dmp@\*.service');  
// run('sudo systemctl restart messenger\_worker\_export@\*.service');  
});

</details>