Bladeren bron

feat: add environment check stage in Jenkinsfile for Node.js and pnpm validation

- Introduce a new stage to verify Node.js installation and version
- Check for the existence of Node.js and pnpm executables
- Provide installation instructions and error handling via Telegram notifications
- Update package version to 1.0.2 in package.json
yb 2 weken geleden
bovenliggende
commit
a159137c1b
2 gewijzigde bestanden met toevoegingen van 73 en 1 verwijderingen
  1. 72 0
      Jenkinsfile
  2. 1 1
      package.json

+ 72 - 0
Jenkinsfile

@@ -113,6 +113,78 @@ pipeline {
             }
         }
 
+        stage('环境检查') {
+            steps {
+                script {
+                    sh '''
+                        source ${WORKSPACE}/jenkins/lib/logger.sh
+                        source ${WORKSPACE}/jenkins/lib/telegram.sh
+                        source ${WORKSPACE}/build_vars.env
+
+                        log_message "=============== 环境检查 ==============="
+                        log_message "检查 Node 版本: ${NODE_VERSION}"
+
+                        # 检查 Node 版本目录是否存在
+                        NODE_DIR="/root/.nvm/versions/node/${NODE_VERSION}"
+                        if [ ! -d "${NODE_DIR}" ]; then
+                            log_message "❌ 错误: Node ${NODE_VERSION} 未安装"
+                            log_message "Node 目录不存在: ${NODE_DIR}"
+                            log_message "请先在服务器上安装 Node ${NODE_VERSION}"
+                            log_message "安装命令: nvm install ${NODE_VERSION}"
+
+                            # 列出已安装的 Node 版本
+                            log_message "当前已安装的 Node 版本:"
+                            ls -la /root/.nvm/versions/node/ 2>/dev/null || log_message "无法读取 nvm 版本目录"
+
+                            send_telegram_message "❌ 构建中止 - ${PROJECT_NAME}
+
+Node 版本 ${NODE_VERSION} 未安装
+请在服务器上执行: nvm install ${NODE_VERSION}"
+
+                            exit 1
+                        fi
+
+                        # 检查 node 可执行文件是否存在
+                        if [ ! -x "${NODE_PATH}/node" ]; then
+                            log_message "❌ 错误: Node 可执行文件不存在"
+                            log_message "路径: ${NODE_PATH}/node"
+
+                            send_telegram_message "❌ 构建中止 - ${PROJECT_NAME}
+
+Node 可执行文件不存在: ${NODE_PATH}/node"
+
+                            exit 1
+                        fi
+
+                        # 检查 pnpm 是否存在
+                        if [ ! -x "${PNPM_PATH}" ]; then
+                            log_message "⚠️ 警告: pnpm 未安装,尝试安装..."
+                            export PATH="${NODE_PATH}:$PATH"
+                            npm install -g pnpm
+
+                            if [ ! -x "${PNPM_PATH}" ]; then
+                                log_message "❌ 错误: pnpm 安装失败"
+
+                                send_telegram_message "❌ 构建中止 - ${PROJECT_NAME}
+
+pnpm 安装失败,请手动安装: npm install -g pnpm"
+
+                                exit 1
+                            fi
+                        fi
+
+                        # 验证 Node 版本
+                        export PATH="${NODE_PATH}:$PATH"
+                        ACTUAL_VERSION=$(node -v)
+                        log_message "✅ Node 版本验证通过: ${ACTUAL_VERSION}"
+                        log_message "✅ pnpm 版本: $(${PNPM_PATH} -v)"
+
+                        update_progress 10 "环境检查完成"
+                    '''
+                }
+            }
+        }
+
         stage('代码拉取') {
             steps {
                 script {

+ 1 - 1
package.json

@@ -1,7 +1,7 @@
 {
   "name": "tg-live-game-web",
   "private": true,
-  "version": "1.0.1",
+  "version": "1.0.2",
   "type": "module",
   "scripts": {
     "dev": "vite",