Aller au contenu

Déployer en production (cycle normal)

Mettre à jour la production, c'est le même geste que pour le test, mais sur la branche main. Tout est automatique et sécurisé.

Le geste

  1. D'abord, assure-toi que ta modification a été testée sur test-transaction.boaz-study.tech (voir Déploiement Dev / Test).

  2. Amène ton code validé sur la branche main :

    1
    2
    3
    git checkout main
    git merge dev          # ou fusionne via une Pull Request sur GitHub
    git push origin main
    

  3. C'est tout. Le robot déploie la production automatiquement, en faisant dans l'ordre :

    • une sauvegarde de la base (au cas où) ;
    • la construction de la nouvelle version ;
    • le remplacement de l'application (quelques secondes de coupure) ;
    • une vérification de santé ; si elle échoue, retour automatique à la version d'avant.

Vérifier que ça a marché (à faire à chaque fois)

  • GitHub → Actions : le run « Deploy PROD » doit être vert (✓).
  • Navigateur : https://transaction.boaz-study.tech s'affiche normalement.
  • En commande :
    1
    curl -I https://api-transaction.boaz-study.tech/health
    
    HTTP/2 200.
  • Données intactes (facultatif, depuis le serveur) :
    1
    docker exec transaction_db psql -U postgres -d transaction_db -c "select count(*) from transactions;"
    
    → le nombre ne doit pas avoir baissé.

En cas de problème

Situation Ce qui se passe / quoi faire
Le run « Deploy PROD » est rouge Le système est revenu tout seul à la version précédente. La prod reste en ligne. Lis l'erreur dans GitHub → Actions, corrige, re-pousse.
La page ne répond plus Regarde les logs : docker logs --tail 50 transaction_backend. En dernier recours, voir Sauvegarde et restauration.
Tu as poussé une mauvaise version par erreur Remets l'ancienne version du code sur main (git revert) et pousse : le bon déploiement repart.

Bon à savoir

  • Une sauvegarde automatique est faite avant chaque déploiement prod (en plus de la sauvegarde de chaque nuit).
  • Le déploiement ne touche jamais aux données : la base et les fichiers sont conservés.