Lorsque le projet upstream gère ses versions par tag, il est préférable de simplement rebase sur le nouveau tag.
Lorsque le projet upstream gère ses versions par tag, il est préférable de simplement rebase sur le nouveau tag.
```
git checkout tedomum-prod
git fetch --all
git rebase v1.2.3
git push origin tedomum-prod -f # le -f est peu élégant mais requis comme on rebase sans changer le nom de la branche
git push --tags && git push origin tedomum-prod -f # le -f est peu élégant, mais requis comme on rebase sans changer le nom de la branche
```
### Déployer la mise à jour d'un service
### Mise à jour d'un service
Lorsqu'une modification ou une mise à jour a été poussée sur la branche `tedomum-prod` du dépôt, un build d'image Docker est automatiquement lancé.
Lorsqu'une modification ou une mise à jour a été poussée sur la branche `tedomum-prod` du dépôt, un build d'image Docker est automatiquement lancé. La procédure de déploiement pour la **plupart** des services est la suivante ; les procédures spécifiques à un service en particulier sont décrites plus bas.
Lorsque l'image est construite et disponible, simplement :
...
...
@@ -111,10 +110,27 @@ cd /srv/apps/<app>
docker-compose pull
docker-compose up -d
```
Les deux dernières commandes sont suivies du nom du service à mettre à jour.
### Déployer Mastodon
On veillera ici à ne pas préciser cibler de service en particulier lors des pull et up -d. Entre ces deux commandes, on migrera la base de données.
```
docker-compose pull
docker-compose run --rm web rails db:migrate
docker-compose up -d
```
### Déployer Synapse
Après le déploiement de Synapse, on met à jour les bridges dans /srv/apps/bridges en pull et up -d synapse dans ledit dossier. On peut vérifier que la mise à jour s'est déroulée sans problème en envoyant le message `help` à @telegram:bridges.tedomum.net ; s'il répond, c'est bon.
### Déployer Pixelfed
Après le déploiement de Pixelfed, on doit migrer sa base de données.
Dans ce caslà, il n'y aura bien souvent que la dernière étape du process décrit ci-dessus à effectuer. Cependant, en cas de mise à jour majeure, il est possible que le `docker-compose.yml` soit également à mettre à jour pour pointer sur la bonne version (comme c'est le cas pour Nextcloud).
Dans ce cas-là, il n'y aura bien souvent que la dernière étape du process décrit ci-dessus à effectuer. Cependant, en cas de mise à jour majeure, il est possible que le `docker-compose.yml` soit également à mettre à jour pour pointer sur la bonne version (comme c'est le cas pour Nextcloud).