diff --git a/.forgejo/workflows/docs.yml b/.forgejo/workflows/docs.yml index 8e7d667..42c201e 100644 --- a/.forgejo/workflows/docs.yml +++ b/.forgejo/workflows/docs.yml @@ -54,17 +54,35 @@ jobs: touch "${SITE_DIR}/.nojekyll" du -sh "${SITE_DIR}" - # La branche pages ne contient que le site, à la racine, en un seul - # commit sans histoire : ce sont des artefacts reconstructibles, et - # l'historique de main suffit à savoir d'où ils viennent. + # La branche pages ne contient que le site, à la racine. Le build est + # greffé sur l'historique existant plutôt que poussé en force : un push + # en avance rapide ne demande que le droit d'écrire sur la branche, là + # où le force-push exige une dérogation supplémentaire dans la + # protection de branche. - name: Publier sur la branche pages run: | cd "${SITE_DIR}" git init --quiet --initial-branch=pages git config user.name "forgejo-actions" git config user.email "forgejo-actions@git.g3e.fr" + git remote add origin "https://${TOKEN}@git.g3e.fr/${{ github.repository }}.git" + + # --depth=1 : seul le dernier commit sert de parent, l'historique + # complet du site n'a pas à être rapatrié à chaque build. + if git fetch --quiet --depth=1 origin pages 2>/dev/null + then + git reset --soft FETCH_HEAD + else + echo "branche pages absente : premier build" + fi + git add -A + if git diff --cached --quiet + then + echo "site identique au précédent, rien à publier" + exit 0 + fi + git commit --quiet -m "docs: build de ${GITHUB_SHA}" - git push --force --quiet \ - "https://${TOKEN}@git.g3e.fr/${{ github.repository }}.git" pages + git push --quiet origin pages echo "publié : $(git rev-parse --short HEAD) — $(git ls-files | wc -l) fichiers" diff --git a/docs/deploiement/image-qcow2.rst b/docs/deploiement/image-qcow2.rst index 63ddc28..1283f52 100644 --- a/docs/deploiement/image-qcow2.rst +++ b/docs/deploiement/image-qcow2.rst @@ -182,7 +182,7 @@ disques : le disque de travail et le disque cible ne doivent pas être confondus cd /work curl "${os_link}" -O - qemu-img convert ./*.qcow2 -O raw ${os_disk} + qemu-img convert ./*.qcow2 -O raw "${os_disk}" L'image du fournisseur est écrite **en brut** directement sur le disque cible : le qcow2 obtenu côté host contient donc une image disque complète et amorçable, sans backing file. @@ -194,7 +194,7 @@ côté host contient donc une image disque complète et amorçable, sans backing sleep 2 # La partition racine est la plus grande du disque - root_partition=$(fdisk -lo device,size /dev/sda | grep -E '^\/dev\/' | tr -s ' ' \ + root_partition=$(fdisk -lo device,size "${os_disk}" | grep -E '^/dev/' | tr -s ' ' \ | sort -rhk2 | head -n1 | cut -d ' ' -f1) mount -o nouuid $root_partition /mnt