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`
|
1. Vorlage kopieren: `cp .deploy.env.example .deploy.env`
|
||||||
2. In `.deploy.env` Host, Benutzer, Port und Zielpfad eintragen
|
2. In `.deploy.env` Host, Benutzer, Port und Zielpfad eintragen
|
||||||
3. Upload-Liste bei Bedarf in `scripts/deploy-include.txt` anpassen
|
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:
|
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.
|
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.
|
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
|
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)"
|
repo_root="$(cd "$(dirname "$0")/.." && pwd)"
|
||||||
config_file="$repo_root/.deploy.env"
|
config_file="$repo_root/.deploy.env"
|
||||||
include_file="${DEPLOY_INCLUDE_FILE:-$repo_root/scripts/deploy-include.txt}"
|
include_file="${DEPLOY_INCLUDE_FILE:-$repo_root/scripts/deploy-include.txt}"
|
||||||
@@ -73,6 +89,12 @@ for item in "${deploy_items[@]}"; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [[ "$dry_run" == true ]]; then
|
||||||
|
echo "Dry-Run: folgende SFTP-Befehle wuerden ausgefuehrt:"
|
||||||
|
cat "$batch_file"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
cd "$repo_root"
|
cd "$repo_root"
|
||||||
sftp -P "$deploy_port" "$DEPLOY_USER@$DEPLOY_HOST" < "$batch_file"
|
sftp -P "$deploy_port" "$DEPLOY_USER@$DEPLOY_HOST" < "$batch_file"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user