34 lines
976 B
Bash
34 lines
976 B
Bash
#!/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."
|