ALIEZ 1 месяц назад
Родитель
Сommit
9875277d3c
3 измененных файлов с 67 добавлено и 1 удалено
  1. 65 0
      deploy.sh
  2. BIN
      dist.tar.gz
  3. 2 1
      package.json

+ 65 - 0
deploy.sh

@@ -0,0 +1,65 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+# One-command deploy script:
+# 1) Build production bundle locally
+# 2) Upload archive to server
+# 3) Extract into target directory and fix ownership
+
+SERVER_HOST="47.83.117.213"
+SERVER_USER="root"
+SERVER_PASSWORD='Bkr!Srv#Mt5@Xoh_9KpL2'
+REMOTE_ARCHIVE="/tmp/manager-service-font-dist.tar.gz"
+REMOTE_DIR="/usr/local/golden/manager-service/font"
+LOCAL_ARCHIVE="dist.tar.gz"
+
+if ! command -v expect >/dev/null 2>&1; then
+  echo "Error: expect is required but not installed."
+  exit 1
+fi
+
+echo "==> Installing dependencies"
+npm install
+
+echo "==> Building production bundle"
+# Pin production API origin (Vite does not override env vars already set).
+export VITE_API_BASE="https://ad.jinclab.com"
+npm run build
+
+echo "==> Packaging dist/"
+COPYFILE_DISABLE=1 tar -czf "${LOCAL_ARCHIVE}" dist
+
+echo "==> Uploading package to server"
+expect <<EOF
+set timeout 180
+spawn scp -o StrictHostKeyChecking=no "${LOCAL_ARCHIVE}" "${SERVER_USER}@${SERVER_HOST}:${REMOTE_ARCHIVE}"
+expect {
+  -re "yes/no" { send "yes\r"; exp_continue }
+  -re "password:" { send "${SERVER_PASSWORD}\r" }
+}
+expect eof
+EOF
+
+echo "==> Deploying on remote server"
+expect <<EOF
+set timeout 180
+spawn ssh -o StrictHostKeyChecking=no "${SERVER_USER}@${SERVER_HOST}" "mkdir -p ${REMOTE_DIR} && rm -rf ${REMOTE_DIR}/* && tar -xzf ${REMOTE_ARCHIVE} -C ${REMOTE_DIR} --strip-components=1 && rm -f ${REMOTE_DIR}/._* ${REMOTE_DIR}/assets/._* && chown -R root:root ${REMOTE_DIR}"
+expect {
+  -re "yes/no" { send "yes\r"; exp_continue }
+  -re "password:" { send "${SERVER_PASSWORD}\r" }
+}
+expect eof
+EOF
+
+echo "==> Verifying remote files"
+expect <<EOF
+set timeout 60
+spawn ssh -o StrictHostKeyChecking=no "${SERVER_USER}@${SERVER_HOST}" "ls -lah ${REMOTE_DIR}"
+expect {
+  -re "yes/no" { send "yes\r"; exp_continue }
+  -re "password:" { send "${SERVER_PASSWORD}\r" }
+}
+expect eof
+EOF
+
+echo "Deployment completed: ${REMOTE_DIR}"


+ 2 - 1
package.json

@@ -10,7 +10,8 @@
     "build": "vue-tsc -b && vite build --mode production",
     "build:prod": "vue-tsc -b && vite build --mode production",
     "build:test": "vue-tsc -b && vite build --mode test",
-    "preview": "vite preview"
+    "preview": "vite preview",
+    "deploy": "bash ./deploy.sh"
   },
   "dependencies": {
     "@vicons/ionicons5": "^0.13.0",