====== Mise à jour de la version Chapril mobilizon ====== Pour fusionner les avancées de l'upstream avec la branche Chapril, il nous faut fusionner les modifications publiées dans le tag le plus récent. ===== Plan d'action général ===== * Fusionner la nouvelle version dans notre branche "chapril" * Communiquer le début de migration * Compiler les assets du frontend et les envoyer sur la VM biliz * Prendre les dernières modifications et migrer la base de données * Relancer le service mobilizon * Vérfier que tout est bon * Communiquer la fin de migration Voici le détail des opérations: ===== Localement ===== Admettons que vous avez les sources de mobilizon sur votre poste de travail dans le dossier ''/tmp/mobilizon'' et que la dernière version est la **5.1.2**. Pour faire l'upgrade vers le tag le plus récent: * Se positionner sur la branche main * Récupérer les avancées de la branche distante du dépôt upstream, tags inclus * Si vous n'avez pas ajouté le dépot upstream, ajoutez le en https ou en ssh selon votre préférence * ''git remote add upstream https://framagit.org/kaihuri/mobilizon.git'' * ''git remote add upstream git@framagit.org:kaihuri/mobilizon.git'' * Se positionner sur la branche du chapril * Fusionner le tag le plus récent vers la branche chapril avec un git merge. * pour voir la liste des tags: ''git tag'' * résoudre les éventuels conflits * Vérifier que tout fonctionne bien * en effectuant les migrations de base données ''mix ecto.migrate'' * en lançant localement le serveur ''mix phx.server'' et en naviguant sur http://localhost:4000 * une fois les conflits résolus, modifications faites et le lint vérifié, faire un commit et un tag chapril-x.x.x (en mettant le bon numéro de tag, celui que l'on vient de fusionner) les envoyer sur la forge du Chapril. git checkout main git pull upstream main git fetch --tags upstream git checkout chapril git merge 5.1.2 git tag chapril-5.1.2 git push --all Nous pouvons maintenant mettre à jour la VM biliz en production. * Recompiler les assets du frontend et les mettre dans le dossier live/priv/static cd /var/www/html/mobilizon/js && yarn run build * Syncroniser les assets compilés avec la VM biliz (nécessite d'avoir **rsync** installé sur la VM) rsync -aP priv/static/* root@biliz.cluster.chapril.org:/srv/mobilizon.chapril.org/live/priv/static --delete ===== Sur la VM biliz ===== * Se connecter à la VM biliz, aller dans le dossier "live", se mettre en tant qu'utilisateur mobilizon et récupérer les dernières modifications de la branche chapril. (attention à avoir comme dépot d'origine le dépot de la forge april, et non l'upstream pour bien avoir votre branche personnelle) Ce qui nous amène sur le tag le plus récent: su mobilizon cd /srv/mobilizon.chapril.org/live git checkout chapril git pull --tags origin && git pull origin chapril * Stopper le service mobilizon: ''service mobilizon stop'' ===== Migrer le backend de mobilizon ===== Il n'est pas nécessaire de le faire à tous les coups, si vous aviez remarqué que seule la partie frontend changeait, vous pouvez relancer le service après avoir uniquement mis à jour les assets de priv/static et faire ''service mobilizon restart''. Ne pas oublier de spécifier l'environnement de prod. su -H mobilizon MIX_ENV=prod mix deps.get su -H mobilizon MIX_ENV=prod mix ecto.migrate * Remettre l'utilisateur mobilizon comme owner des fichiers chown -R mobilizon:mobilizon /srv/mobilizon.chapril.org/live * Relancer le service mobilizon: ''service mobilizon start'' ce qui doit prendre environ 5 secondes sur Biliz. ===== Vérifications ===== * vérifier les erreur dans le journal du service : ''journalctl -fu mobilizon -n1000'' * si c'est bon, interrompre la lecture du journal d'erreurs: Ctrl + C. * vérifier le frontend sur https://mobilizon.chapril.org , nécessite un vidage de votre cache navigateur (ctrl + R) * Communiquer la fin de mise à jour sur les canaux qui vont bien.