====== 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 :
- générer un tarball de la nouvelle version, sur le poste de travail de l'animsys
- 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 [[https://forge.april.org/Chapril/paste.chapril.org-privatebin/tags|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 [[https://forge.april.org/Chapril/paste.chapril.org-privatebin/tags|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