#!/bin/bash # Met en ligne www.alpinux.org depuis le dépôt alpinux-www. # Appelé par le service webhook après chaque push sur main, ou à la main en secours. set -e REPO_DIR="/opt/www-alpinux/repo" SOURCE="$REPO_DIR/site" TARGET="/var/www/clients/client1/web11/web" LOG="/var/log/www-deploy.log" echo "[$(date '+%Y-%m-%d %H:%M:%S')] Deploy started" >> "$LOG" cd "$REPO_DIR" git pull origin main >> "$LOG" 2>&1 # Garde-fou : un index.html tronqué ne part pas en ligne. C'est l'équivalent, pour un # site sans build, du « mkdocs build --strict » du wiki. if ! grep -q "" "$SOURCE/index.html"; then echo "[$(date '+%Y-%m-%d %H:%M:%S')] ABANDON : index.html incomplet" >> "$LOG" exit 1 fi # Pas de --delete, volontairement : le DocumentRoot contient aussi des fichiers qui ne # sont pas dans ce dépôt — le .htaccess qui relaie /public-calendars vers Nextcloud, les # pages d'erreur et les statistiques d'ISPConfig. Supprimer un fichier ici ne le retire # donc pas du serveur : c'est à faire à la main, et c'est écrit dans le README. rsync -rltD --no-perms --omit-dir-times "$SOURCE/" "$TARGET/" >> "$LOG" 2>&1 echo "[$(date '+%Y-%m-%d %H:%M:%S')] Deploy done" >> "$LOG"