====== 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