Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -10,6 +10,41 @@ export FORCE_COLOR="0"
|
|||||||
LOG_FILE="/var/log/bssapp_deploy.log"
|
LOG_FILE="/var/log/bssapp_deploy.log"
|
||||||
APP_DIR="/opt/bssapp"
|
APP_DIR="/opt/bssapp"
|
||||||
LOCK_FILE="/tmp/bssapp_deploy.lock"
|
LOCK_FILE="/tmp/bssapp_deploy.lock"
|
||||||
|
RUNTIME_BACKUP_DIR=""
|
||||||
|
RUNTIME_PRESERVE_FILES=(
|
||||||
|
".env"
|
||||||
|
"mail.env"
|
||||||
|
"svc/.env"
|
||||||
|
"svc/mail.env"
|
||||||
|
"svc/fonts"
|
||||||
|
"svc/public"
|
||||||
|
)
|
||||||
|
|
||||||
|
backup_runtime_files() {
|
||||||
|
RUNTIME_BACKUP_DIR="$(mktemp -d /tmp/bssapp-runtime.XXXXXX)"
|
||||||
|
|
||||||
|
for rel in "${RUNTIME_PRESERVE_FILES[@]}"; do
|
||||||
|
src="$APP_DIR/$rel"
|
||||||
|
dst="$RUNTIME_BACKUP_DIR/$rel"
|
||||||
|
|
||||||
|
if [[ -e "$src" ]]; then
|
||||||
|
mkdir -p "$(dirname "$dst")"
|
||||||
|
cp -a "$src" "$dst"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
restore_runtime_files() {
|
||||||
|
[[ -n "$RUNTIME_BACKUP_DIR" && -d "$RUNTIME_BACKUP_DIR" ]] || return 0
|
||||||
|
find "$RUNTIME_BACKUP_DIR" -mindepth 1 -print -quit | grep -q . || return 0
|
||||||
|
cp -a "$RUNTIME_BACKUP_DIR/." "$APP_DIR/"
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanup_runtime_backup() {
|
||||||
|
if [[ -n "$RUNTIME_BACKUP_DIR" && -d "$RUNTIME_BACKUP_DIR" ]]; then
|
||||||
|
rm -rf "$RUNTIME_BACKUP_DIR"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
ensure_runtime_env_files() {
|
ensure_runtime_env_files() {
|
||||||
# Bazı unit dosyaları EnvironmentFile olarak bu path'leri bekliyor.
|
# Bazı unit dosyaları EnvironmentFile olarak bu path'leri bekliyor.
|
||||||
@@ -20,6 +55,25 @@ ensure_runtime_env_files() {
|
|||||||
[[ -f "$APP_DIR/svc/mail.env" ]] || touch "$APP_DIR/svc/mail.env"
|
[[ -f "$APP_DIR/svc/mail.env" ]] || touch "$APP_DIR/svc/mail.env"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ensure_pdf_fonts() {
|
||||||
|
font_dir="$APP_DIR/svc/fonts"
|
||||||
|
sys_font_dir="/usr/share/fonts/truetype/dejavu"
|
||||||
|
|
||||||
|
mkdir -p "$font_dir"
|
||||||
|
|
||||||
|
if [[ ! -f "$font_dir/DejaVuSans.ttf" && -f "$sys_font_dir/DejaVuSans.ttf" ]]; then
|
||||||
|
cp -a "$sys_font_dir/DejaVuSans.ttf" "$font_dir/DejaVuSans.ttf"
|
||||||
|
fi
|
||||||
|
if [[ ! -f "$font_dir/DejaVuSans-Bold.ttf" && -f "$sys_font_dir/DejaVuSans-Bold.ttf" ]]; then
|
||||||
|
cp -a "$sys_font_dir/DejaVuSans-Bold.ttf" "$font_dir/DejaVuSans-Bold.ttf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f "$font_dir/DejaVuSans.ttf" || ! -f "$font_dir/DejaVuSans-Bold.ttf" ]]; then
|
||||||
|
echo "ERROR: Required PDF fonts missing in $font_dir (DejaVuSans.ttf / DejaVuSans-Bold.ttf)"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
build_api_binary() {
|
build_api_binary() {
|
||||||
if ! command -v go >/dev/null 2>&1; then
|
if ! command -v go >/dev/null 2>&1; then
|
||||||
echo "go command not found; cannot build backend binary."
|
echo "go command not found; cannot build backend binary."
|
||||||
@@ -37,6 +91,8 @@ build_api_binary() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
run_deploy() {
|
run_deploy() {
|
||||||
|
trap cleanup_runtime_backup EXIT
|
||||||
|
|
||||||
exec 9>"$LOCK_FILE"
|
exec 9>"$LOCK_FILE"
|
||||||
if ! flock -n 9; then
|
if ! flock -n 9; then
|
||||||
echo "[$(date '+%F %T')] Deploy already running. Skipping new request."
|
echo "[$(date '+%F %T')] Deploy already running. Skipping new request."
|
||||||
@@ -50,9 +106,11 @@ run_deploy() {
|
|||||||
cd "$APP_DIR"
|
cd "$APP_DIR"
|
||||||
|
|
||||||
echo "== GIT SYNC =="
|
echo "== GIT SYNC =="
|
||||||
|
backup_runtime_files
|
||||||
git fetch origin
|
git fetch origin
|
||||||
git reset --hard origin/master
|
git reset --hard origin/master
|
||||||
git clean -fdx -e .env -e mail.env -e svc/.env -e svc/mail.env -e svc/bssapp
|
git clean -fdx -e .env -e mail.env -e svc/.env -e svc/mail.env -e svc/bssapp
|
||||||
|
restore_runtime_files
|
||||||
|
|
||||||
echo "== BUILD UI =="
|
echo "== BUILD UI =="
|
||||||
cd "$APP_DIR/ui"
|
cd "$APP_DIR/ui"
|
||||||
@@ -70,6 +128,9 @@ run_deploy() {
|
|||||||
echo "== ENSURE ENV FILES =="
|
echo "== ENSURE ENV FILES =="
|
||||||
ensure_runtime_env_files
|
ensure_runtime_env_files
|
||||||
|
|
||||||
|
echo "== ENSURE PDF FONTS =="
|
||||||
|
ensure_pdf_fonts
|
||||||
|
|
||||||
echo "== RESTART SERVICE =="
|
echo "== RESTART SERVICE =="
|
||||||
systemctl restart bssapp
|
systemctl restart bssapp
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user