使用Jenkins自动化部署vue项目(2.528.2版本)

1、 插件市场安装NodeJS

2、全局工具配置-NodeJS 安装自己需要的版本

3、新建凭证

4、新建item

5、编辑内容

bash 复制代码
pipeline {
    agent any
    
    tools {
        nodejs 'node22' //之前安装node的名称
    }
    
    environment {
        DEPLOY_SERVER = '' //ip地址
        DEPLOY_PORT = '22' //端口
        DEPLOY_USER = 'root' //账号
        DEPLOY_PASSWORD = ''  // 密码
        TARGET_DIR = '/www/dist' //部署的目录
    }
    
    stages {
        stage('Checkout') {
            steps {
                git url: '', //git地址
                     branch: 'temporary', //分支
                     credentialsId: '96a5ad65-5728-47c8-ab12-1588ec7cb6b7' //凭证id
            }
        }
        
        stage('Build Frontend') {
            steps {
                sh '''
                    echo "设置 npm 镜像..."
                    npm config set registry https://registry.npmmirror.com
                    
                    echo "安装依赖..."
                    npm install
                    
                    echo "构建生产版本..."
                    npm run build:prod
                '''
            }
            
            post {
                success {
                    echo "✅ 前端构建成功"
                    sh 'ls -la dist/'
                }
                failure {
                    echo "❌ 前端构建失败"
                }
            }
        }
        
        stage('Deploy to Nginx') {
            steps {
                script {
                    try {
                        echo "🚀 开始部署到 ${DEPLOY_SERVER}"
                        
                        // 1. 清空目标目录
                        sh """
                            sshpass -p ${DEPLOY_PASSWORD} ssh -p ${DEPLOY_PORT} \
                            -o StrictHostKeyChecking=no \
                            -o ConnectTimeout=30 \
                            ${DEPLOY_USER}@${DEPLOY_SERVER} \
                            "rm -rf ${TARGET_DIR}/* && echo '目录清空成功'"
                        """
                        
                        // 2. 检查清空结果
                        sh """
                            sshpass -p ${DEPLOY_PASSWORD} ssh -p ${DEPLOY_PORT} \
                            -o StrictHostKeyChecking=no \
                            ${DEPLOY_USER}@${DEPLOY_SERVER} \
                            "test -z \"\$(ls -A ${TARGET_DIR})\" && echo '目录已完全清空' || echo '警告:目录可能未完全清空'"
                        """
                        
                        // 3. 上传文件
                        sh """
                            echo "上传文件中..."
                            sshpass -p ${DEPLOY_PASSWORD} scp -P ${DEPLOY_PORT} \
                            -o StrictHostKeyChecking=no \
                            -r dist/* \
                            ${DEPLOY_USER}@${DEPLOY_SERVER}:${TARGET_DIR}/
                        """
                        
                        // 4. 验证部署
                        sh """
                            echo "验证部署..."
                            sshpass -p ${DEPLOY_PASSWORD} ssh -p ${DEPLOY_PORT} \
                            -o StrictHostKeyChecking=no \
                            ${DEPLOY_USER}@${DEPLOY_SERVER} \
                            "echo '文件数量:'; find ${TARGET_DIR} -type f | wc -l; echo '目录大小:'; du -sh ${TARGET_DIR}"
                        """
                        
                        echo "✅ 部署完成"
                        
                    } catch (Exception e) {
                        echo "❌ 部署失败: ${e.getMessage()}"
                        currentBuild.result = 'FAILURE'
                        error('部署阶段失败')
                    }
                }
            }
            
            post {
                success {
                    echo "🎉 部署成功完成"
                }
                failure {
                    echo "⚠️ 部署失败"
                }
            }
        }
    }
    
    post {
        always {
            echo "📋 流水线执行完成 - ${currentBuild.result}"
            cleanWs()
        }
    }
}
相关推荐
猫不易16 小时前
从 Virtual DOM 到 Vapor:Vue 3.6 的另一条路
前端·vue.js
未来之窗软件服务16 小时前
企业自动化运营-电子合同预览-东方仙盟
运维·自动化·仙盟创梦ide·东方仙盟
airobotcn16 小时前
智能巡检平台容器化部署:Docker+K8s在工业边缘的实践
人工智能·docker·容器·kubernetes·机器人·自动化
airobotcn18 小时前
AI Agent下工厂:大模型如何驱动巡检机器人自主决策
人工智能·机器人·自动化·无人机
雪碧聊技术20 小时前
Vue + Element Plus 实现文本溢出显示省略号及悬浮提示
前端·javascript·css·vue.js·文本溢出省略
「PlanA」21 小时前
自动化流水线CSDN自动发布文章
运维·自动化
JS03简思工控:聂辉林1 天前
PLC 梯形图编程实战:简思 SFm 三步搭出电机正反转互锁程序
自动化
小新讲网安1 天前
PowerShell安全攻防实战:从渗透利用到检测防御全攻略
安全·web安全·网络安全·黑客·自动化·sqlmap·网安
Highcharts.js1 天前
Highcharts 主流前端框架无缝集成指南
前端·vue.js·前端框架·highcharts·可视化图表
代码方舟1 天前
零信任架构实战:基于天远人企关联构建自动化企业尽职调查网关
java·人工智能·架构·自动化