Outils pour utilisateurs

Outils du site


admin:services:paste.chapril.org:upgrade

Mise à jour de paste

Ceci est une nouvelle procédure, pas encore totalement éprouvée. Elle a été rédigée à partir de ce qui a été fait manuellement pour la v1.5.1.

La mise à jour se passe en 2 temps :

  1. générer un tarball de la nouvelle version, sur le poste de travail de l'animsys
  2. déployer ce tarball sur le serveur

Générer le "livrable"

Cette étape se déroule de préférence sur le poste de travail de l'animsys, pas sur le serveur.

La première fois

mkdir -p ~/code/chapril/paste-chapril
cd ~/code/chapril/paste-chapril/
git clone https://forge.april.org/Chapril/paste.chapril.org-privatebin.git . # ne pas oublier le "." ici
git remote add upstream https://github.com/PrivateBin/PrivateBin.git
git fetch --all

Les fois suivantes

cd ~/code/chapril/paste-chapril
git fetch --all

Trouver le tag de la version qui nous intéresse. C'est probablement le dernier qui nous intéresse, donc on peut l'obtenir avec cette commande :

git tag --sort=v:refname | tail -n 1

Stockons le numéro de version qui nous intéresse dans une variable, ici la version 1.5.1 pour l'exemple :

export VERSION=1.5.1
cd ~/code/chapril/paste-chapril
git checkout main-chapril
git rebase ${VERSION?}

Et maintenant, il faut résoudre les éventuels conflits.

TODO : décrire grossièrement la procédure de résolution des conflits (edit/git add/git rebase –continue)

Une fois les conflits résolus, on créé un tag, puis une archive tar.gz à partir de ce tag :

git tag ${VERSION?}-chapril
git push --tags origin # Pousser le tag côté forge April

Normalement, le fait de pousser le tag suffit pour générer une archive téléchargeable sur la page des tags de la forge. Mais si l'archive n'est pas téléchargeable, alors on peut le créer soi-même comme ceci :

git archive --prefix=paste-${VERSION?}-chapril/ -o /tmp/paste-${VERSION?}-chapril.tar.gz ${VERSION?}-chapril

Déployer

Le tag créé dans la précédente section donne lieu à la création d'un tarball téléchargeable sur la page des tags de la forge.

Stockons une fois de plus le numéro de version qui nous intéresse dans une variable, ici la version 1.5.1 pour l'exemple :

export VERSION=1.5.1

On extrait alors dans un dossier dédié, dans lequel on doit recopier le fichier conf.php spécifique de Chapril (on ne le copie pas, on créé plutôt un lien symbolique parce qu'on aime créer du lien :) )

cd /var/www/paste.chapril.org/
wget -O versions/paste-${VERSION?}-chapril.tar.gz \
  https://forge.april.org/Chapril/paste.chapril.org-privatebin/archive/${VERSION?}-chapril.tar.gz
sudo -u www-data tar \
  --one-top-level=versions/chapril-paste-${VERSION?} \
  --strip-components=1 \
  -xavf versions/paste-${VERSION?}-chapril.tar.gz
cd versions/chapril-paste-${VERSION?}/cfg/
ln -s /etc/chapril-paste.conf conf.php

On peut maintenant faire la bascule, tout simplement en remplaçant le lien symbolique public_html pour qu'il pointe vers le nouveau dossier :

cd /var/www/paste.chapril.org/
rm -f public_html ; ln -s versions/chapril-paste-${VERSION?} public_html

On vérifie que l'appli fonctionne toujours correctement en visitant https://paste.chapril.org/.

Si besoin, on peut rapidement faire un retour arrière à la version précédente (version 1.4.0 ici) avec la commande suivante :

rm -f public_html ; ln -s versions/chapril-paste-1.4.0 public_html
admin/services/paste.chapril.org/upgrade.txt · Dernière modification : 2024/01/07 14:41 de pitchum