This commit is contained in:
Saufi
2026-06-16 16:35:16 +08:00
parent d3d21e6c53
commit fb4739e407
7 changed files with 177 additions and 1 deletions

33
deploy/deploy.sh Normal file
View File

@@ -0,0 +1,33 @@
#!/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."