Przeglądaj źródła

update script file

yb 10 miesięcy temu
rodzic
commit
17655d46ea
2 zmienionych plików z 35 dodań i 19 usunięć
  1. 3 1
      .vscode/settings.json
  2. 32 18
      bash/run.sh

+ 3 - 1
.vscode/settings.json

@@ -140,5 +140,7 @@
     "package.json": "pnpm-lock.yaml,yarn.lock,LICENSE,README*,CHANGELOG*,CNAME,.gitattributes,.eslintrc-auto-import.json,prettier.config.js,stylelint.config.js,commitlint.config.js,.stylelintignore,.prettierignore,.gitpod.yml,.eslintrc.js,.eslintignore"
   },
   "terminal.integrated.scrollback": 10000,
-  "nuxt.isNuxtApp": false
+  "[shellscript]": {
+    "editor.defaultFormatter": "foxundermoon.shell-format"
+  }
 }

+ 32 - 18
bash/run.sh

@@ -1,17 +1,18 @@
 #!/bin/bash
-
 # 配置
-SOURCE_DIR="dist-prod"              # 打包生成的源文件夹
-ZIP_NAME="dc.ifoodme.com.zip"       # 输出的 ZIP 文件名
-TEMP_DIR="/tmp/dc.ifoodme.com"      # 临时目录,用于构建目标结构
-TARGET_DIR="dc.ifoodme.com"         # ZIP 中的目标目录名
-BUILD_CMD="pnpm run build:prod"     # 打包命令
+SOURCE_DIR="dist-prod"          # 打包生成的源文件夹
+ZIP_NAME="dc.ifoodme.com.zip"   # 输出的 ZIP 文件名
+TEMP_DIR="/tmp/dc.ifoodme.com"  # 临时目录,用于构建目标结构
+TARGET_DIR="dc.ifoodme.com"     # ZIP 中的目标目录名
+BUILD_CMD="pnpm run build:prod" # 打包命令
 
 # FTP 配置
 FTP_SERVER="104.233.167.88"
 FTP_PORT="21"
-FTP_USER="admin"        # 这里替换成你的 FTP 用户名
-FTP_PASS="snF1szwjJZcJ"        # 这里替换成你的 FTP 密码
+FTP_USER="admin"
+# 这里替换成你的 FTP 用户名
+FTP_PASS="snF1szwjJZcJ"
+# 这里替换成你的 FTP 密码
 FTP_TARGET_DIR="/"
 
 # 颜色输出
@@ -19,6 +20,10 @@ RED='\033[0;31m'
 GREEN='\033[0;32m'
 NC='\033[0m' # No Color
 
+# 捕获中断信号
+trap 'cleanup; exit 1' INT TERM
+
+
 # 检查命令是否存在
 command_exists() {
     command -v "$1" >/dev/null 2>&1
@@ -68,15 +73,10 @@ check_source() {
 # 打包 ZIP
 create_zip() {
     echo "开始打包 ZIP..."
-
-    # 创建临时目录并复制文件
+    rm -rf "$TEMP_DIR"
     mkdir -p "$TEMP_DIR"
     cp -r "$SOURCE_DIR"/* "$TEMP_DIR"
-
-    # 重命名临时目录为目标目录名
     mv "$TEMP_DIR" "$TARGET_DIR"
-
-    # 打包为 ZIP
     zip -r "$ZIP_NAME" "$TARGET_DIR" >/dev/null
     if [ $? -eq 0 ]; then
         echo -e "${GREEN}打包成功:$ZIP_NAME${NC}"
@@ -89,9 +89,7 @@ create_zip() {
 # FTP 上传
 upload_ftp() {
     echo "开始上传文件到 FTP 服务器 $FTP_SERVER:$FTP_PORT ..."
-
-    curl -T "$ZIP_NAME" --ftp-create-dirs -u "$FTP_USER:$FTP_PASS" "ftp://$FTP_SERVER:$FTP_PORT$FTP_TARGET_DIR/$ZIP_NAME"
-
+    curl --max-time 300 --retry 3 -T "$ZIP_NAME" --ftp-create-dirs -u "$FTP_USER:$FTP_PASS" "ftp://$FTP_SERVER:$FTP_PORT$FTP_TARGET_DIR/$ZIP_NAME"
     if [ $? -eq 0 ]; then
         echo -e "${GREEN}文件上传成功:$FTP_TARGET_DIR/$ZIP_NAME${NC}"
     else
@@ -113,6 +111,19 @@ test_unzip() {
     fi
 }
 
+trigger_jenkins() {
+    JENKINS_URL="https://code.ifoodme.com/job/online-order-vue/build"
+    JENKINS_TOKEN="11d3ef87866e3756c131425ef09d705002"
+    echo "触发 Jenkins 任务..."
+    curl -X POST "$JENKINS_URL" --user "username:$JENKINS_TOKEN"
+    if [ $? -eq 0 ]; then
+        echo -e "${GREEN}Jenkins 任务触发成功${NC}"
+    else
+        echo -e "${RED}Jenkins 任务触发失败${NC}"
+        exit 1
+    fi
+}
+
 # 清理
 cleanup() {
     echo "清理临时文件..."
@@ -123,12 +134,15 @@ cleanup() {
 # 主函数
 main() {
     check_dependencies
-    check_and_remove_zip  # 先检查并删除旧的 ZIP 文件
+    check_and_remove_zip # 先检查并删除旧的 ZIP 文件
     run_build
     check_source
     create_zip
+    test_unzip
     upload_ftp
     cleanup
+    # trigger jenkins 任务
+    trigger_jenkins
     echo -e "${GREEN}所有任务完成!${NC}"
 }