Merge remote-tracking branch 'origin/master'

This commit is contained in:
M_Kececi
2026-02-17 12:49:56 +03:00
parent fde9b4469f
commit 6483678267

View File

@@ -6,14 +6,75 @@ export CI="true"
export npm_config_progress="false" export npm_config_progress="false"
export npm_config_loglevel="warn" export npm_config_loglevel="warn"
export FORCE_COLOR="0" 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"
pick_sass_embedded_pkg() {
local arch
arch="$(uname -m)"
case "$arch" in
x86_64|amd64)
if ldd --version 2>&1 | grep -qi musl; then
echo "sass-embedded-linux-musl-x64@1.93.2"
else
echo "sass-embedded-linux-x64@1.93.2"
fi
;;
aarch64|arm64)
if ldd --version 2>&1 | grep -qi musl; then
echo "sass-embedded-linux-musl-arm64@1.93.2"
else
echo "sass-embedded-linux-arm64@1.93.2"
fi
;;
armv7l|armhf)
echo "sass-embedded-linux-arm@1.93.2"
;;
*)
echo ""
;;
esac
}
ensure_sass_embedded() {
local platform_pkg check_output
platform_pkg="$(pick_sass_embedded_pkg)"
if [[ -z "$platform_pkg" ]]; then
echo "Unsupported CPU architecture for sass-embedded: $(uname -m)"
return 1
fi
echo "Installing sass-embedded packages: sass-embedded@1.93.2 + $platform_pkg"
npm i --no-save --no-audit --no-fund sass-embedded@1.93.2 "$platform_pkg"
check_output="$(./node_modules/.bin/sass --embedded --version 2>&1 || true)"
echo "$check_output"
if echo "$check_output" | grep -qi "unavailable in pure JS mode"; then
echo "sass --embedded is still unavailable."
return 1
fi
}
build_api_binary() {
if ! command -v go >/dev/null 2>&1; then
echo "go command not found; cannot build backend binary."
return 1
fi
cd "$APP_DIR/svc"
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-w -s" -o "$APP_DIR/bssapp" ./main.go
chmod +x "$APP_DIR/bssapp"
}
run_deploy() { run_deploy() {
exec 9>"$LOCK_FILE" exec 9>"$LOCK_FILE"
if ! flock -n 9; then if ! flock -n 9; then
echo "[$(date '+%F %T')] Deploy zaten calisiyor, yeni istek atlandi." echo "[$(date '+%F %T')] Deploy already running. Skipping new request."
return 0 return 0
fi fi
@@ -26,37 +87,17 @@ run_deploy() {
echo "== GIT SYNC ==" echo "== GIT SYNC =="
git fetch origin git fetch origin
git reset --hard origin/master git reset --hard origin/master
git clean -fdx git clean -fdx -e bssapp -e nerp
echo "== BUILD UI ==" echo "== BUILD UI =="
cd ui cd "$APP_DIR/ui"
npm ci --no-audit --no-fund --include=optional npm ci --no-audit --no-fund --include=optional
ensure_sass_embedded
# Bazı sunucularda npm optional paketleri atlıyor; bu durumda
# sass --embedded çalışamadığı için Quasar build EPIPE ile düşüyor.
if ! ./node_modules/.bin/sass --embedded --version >/dev/null 2>&1; then
echo "sass-embedded binary yok, platform paketi kuruluyor..."
case "$(uname -m)" in
x86_64|amd64) SASS_EMBEDDED_PKG="sass-embedded-linux-x64@1.93.2" ;;
aarch64|arm64) SASS_EMBEDDED_PKG="sass-embedded-linux-arm64@1.93.2" ;;
armv7l|armhf) SASS_EMBEDDED_PKG="sass-embedded-linux-arm@1.93.2" ;;
*)
echo "Desteklenmeyen mimari: $(uname -m). Sass embedded paketi atlandi."
SASS_EMBEDDED_PKG=""
;;
esac
if [[ -n "${SASS_EMBEDDED_PKG}" ]]; then
npm i --no-save --no-audit --no-fund "$SASS_EMBEDDED_PKG"
./node_modules/.bin/sass --embedded --version >/dev/null 2>&1 || {
echo "sass-embedded hala aktif degil."
return 1
}
fi
fi
npm run build npm run build
echo "== BUILD API =="
build_api_binary
echo "== RESTART SERVICE ==" echo "== RESTART SERVICE =="
systemctl restart bssapp systemctl restart bssapp
@@ -68,6 +109,6 @@ if [[ "${1:-}" == "--run" ]]; then
exit 0 exit 0
fi fi
# Webhook cagirisini tamamen ayir: pipe kapanmalarinda EPIPE olusmasin. # Fully detach webhook-triggered process to avoid EPIPE from closed request sockets.
nohup /bin/bash "$0" --run </dev/null >/dev/null 2>&1 & nohup /bin/bash "$0" --run </dev/null >/dev/null 2>&1 &
exit 0 exit 0