Add deploy dry-run mode
This commit is contained in:
@@ -25,7 +25,8 @@ Ein SFTP-Deployment ist vorbereitet.
|
||||
1. Vorlage kopieren: `cp .deploy.env.example .deploy.env`
|
||||
2. In `.deploy.env` Host, Benutzer, Port und Zielpfad eintragen
|
||||
3. Upload-Liste bei Bedarf in `scripts/deploy-include.txt` anpassen
|
||||
4. Deployment starten: `./scripts/deploy-sftp.sh`
|
||||
4. Optional Vorschau anzeigen: `./scripts/deploy-sftp.sh --dry-run`
|
||||
5. Deployment starten: `./scripts/deploy-sftp.sh`
|
||||
|
||||
Beispiel fuer die Konfiguration:
|
||||
|
||||
@@ -40,4 +41,6 @@ Das Skript uebertraegt die statischen Projektdateien und Verzeichnisse `css`, `i
|
||||
|
||||
Vor dem Verbindungsaufbau prueft das Skript, ob alle in `scripts/deploy-include.txt` aufgefuehrten Dateien und Verzeichnisse lokal vorhanden sind. Die Upload-Liste kann damit zentral gepflegt werden.
|
||||
|
||||
Mit `--dry-run` gibt das Skript nur die erzeugten SFTP-Befehle aus, ohne eine Verbindung zum Server aufzubauen.
|
||||
|
||||
Wichtig: Das Deployment aktualisiert vorhandene Dateien, entfernt aber keine Dateien auf dem Server, die lokal bereits geloescht wurden.
|
||||
@@ -2,6 +2,22 @@
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
dry_run=false
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--dry-run)
|
||||
dry_run=true
|
||||
;;
|
||||
*)
|
||||
echo "Unbekanntes Argument: $1" >&2
|
||||
echo "Verwendung: $0 [--dry-run]" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
repo_root="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
config_file="$repo_root/.deploy.env"
|
||||
include_file="${DEPLOY_INCLUDE_FILE:-$repo_root/scripts/deploy-include.txt}"
|
||||
@@ -73,6 +89,12 @@ for item in "${deploy_items[@]}"; do
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "$dry_run" == true ]]; then
|
||||
echo "Dry-Run: folgende SFTP-Befehle wuerden ausgefuehrt:"
|
||||
cat "$batch_file"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
cd "$repo_root"
|
||||
sftp -P "$deploy_port" "$DEPLOY_USER@$DEPLOY_HOST" < "$batch_file"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user