Déploiement & co
Darks edited this page 1 month ago

TL;DR

featuredevpreprodmaster

On commence par faire une branche dédiée au truc sur lequel on travaille. Ensuite quand ça fonctionne à peu près chez soi, on merge sur dev. On fait tester aux autres devs, etc. Quand c’est pas trop mal, on merge sur preprod. On teste en profondeur sur le serveur de test. Si tout va bien, on merge preprod sur master.

Attention, dès que le git push origin preprod|master est lancé, le déploiement est automatique sur les instances concernées !

Actuellement, seul le serveur de préprod est disponible à l’adresse https://v5.planet-casio.com

On fait bien attention à tester avant de pousser en ligne !

Fonctionnement

Lorsqu’un git push est effectué, l’utilisateur gitea du VPS appelle le crochet de post-transaction. gitea se connecte alors en ssh sur les comptes pc et pc-dev et exécute les scripts de déploiement ~/deployment.sh.

#!/bin/bash

# Deployment script. Git pull the branch master

logfile=$HOME/deployment.log

echo "=== Started deployment ($(date '+%Y-%m-%d %H:%M:%S')) ===" >> $logfile
cd $HOME/www >> $logfile 2>&1
git pull origin master >> $logfile 2>&1 # La branche diffère suivant la prod ou le dev.
flask db upgrade >> $logfile 2>&1
echo -e "=== Ended deployment ===\n" >> $logfile

exit 0

Droits et clés ssh

  • La clé publique de gitea doit figurer dans le fichier .ssh/authorized_keys de chaque utilisateur ayant un script de déploiement ;
  • la clé publique des utilisateurs de déploiement doit être référencée dans les clés de déploiement des dépôts ;
  • le fichier deployment.sh doit être marqué comme exécutable pour son propriétaire.