diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..f0b5111 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Farben +GREEN="\033[0;32m" +RED="\033[0;31m" +NC="\033[0m" + +log() { echo -e "${GREEN}[$(date +'%Y-%m-%d %H:%M:%S')] $*${NC}"; } +err() { echo -e "${RED}[$(date +'%Y-%m-%d %H:%M:%S')] $*${NC}" 1>&2; } + +log "Fetching latest changes..." +git fetch --all --prune || { err "git fetch failed"; exit 1; } + +log "Pulling latest changes..." +git pull --ff-only || { err "git pull failed"; exit 1; } + +log "Installing dependencies..." +npm ci || npm install || { err "npm install failed"; exit 1; } + +log "Building frontend..." +npm run build || { err "build failed"; exit 1; } + +log "Copying dist -> public..." +mkdir -p public || true +cp -R dist/* public/ || { err "copy dist failed"; exit 1; } + +log "Restarting service miriamgemeinde..." +sudo systemctl restart miriamgemeinde || { err "service restart failed"; exit 1; } + +log "Deployment completed successfully."