#!/usr/bin/env bash # # Skrip deploy yang dipanggil oleh webhook bila ada push ke Gitea. # Ia mengesan sendiri lokasi repo (folder induk kepada deploy/), # tarik kod terbaru, dan bina semula container. # set -euo pipefail # Cabang yang akan di-deploy (boleh override: BRANCH=staging ./deploy.sh) BRANCH="${BRANCH:-master}" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_DIR="$(dirname "$SCRIPT_DIR")" cd "$REPO_DIR" LOG() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"; } LOG "Mula deploy untuk $REPO_DIR (branch: $BRANCH)" # Tarik kod terbaru — reset --hard supaya server sentiasa padan dengan remote. git fetch --prune origin git reset --hard "origin/${BRANCH}" # Bina & start semula container docker compose up --build -d # Bersihkan image lama supaya disk tak penuh docker image prune -f >/dev/null 2>&1 || true # Optional: jalankan migration (buang komen kalau perlu) # docker compose exec -T app php artisan migrate --force LOG "Deploy selesai."