| 1 | #!/usr/bin/env bash |
| 2 | set -euo pipefail |
| 3 | PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)" |
| 4 | STAMP=$(date +%Y-%m-%d-%H%M%S) |
| 5 | OUT=~/builds/$STAMP |
| 6 | mkdir -p "$OUT" |
| 7 | |
| 8 | rsync -az --delete --exclude deploy.sh --exclude .git \ |
| 9 | "$PROJECT_DIR"/ "$OUT"/ |
| 10 | |
| 11 | rsync -az --delete "$OUT"/ /var/www/sketch.musicsian.com/releases/$STAMP/ |
| 12 | |
| 13 | sudo ln -nfs /var/www/sketch.musicsian.com/releases/$STAMP \ |
| 14 | /var/www/sketch.musicsian.com/current |
| 15 | sudo restorecon -Rv /var/www/sketch.musicsian.com/releases/$STAMP >/dev/null |
| 16 | sudo systemctl reload nginx |
| 17 | echo "✓ Deployed $STAMP to sketch.musicsian.com" |