Jenkins 持续集成:前端项目自动构建与部署配置指南

1. 前置条件
  • Jenkins 基础环境
    安装 Jenkins 及必要插件:
    Git(代码拉取)、NodeJS(环境管理)、Publish Over SSH(远程部署)。
  • 项目仓库
    GitLab/GitHub 等托管前端代码(如 Vue/React 项目)。
  • 服务器准备
    目标部署服务器(如 Nginx 静态资源目录)。

2. 配置 Jenkins 任务
步骤 1:新建流水线任务
  • 任务名称:FE-Auto-Build-Deploy
  • 选择 Pipeline 类型。
步骤 2:配置源码管理
  • Git 仓库 URL:填写项目 Git 地址(含 .git 后缀)。
  • 凭证:添加访问仓库的 SSH Key 或账号密码。
  • 分支:指定构建分支(如 */main)。
步骤 3:构建触发器
  • 定时构建:例如 H/15 * * * *(每 15 分钟检查更新)。
  • Webhook 触发(推荐):
    在 Git 仓库配置 Webhook URL:JENKINS_URL/gitlab/build_now

3. 编写 Jenkinsfile 流水线脚本

在项目根目录创建 Jenkinsfile,示例脚本如下:

pipeline {
    agent any
    tools {
        nodejs "NodeJS-18" // 匹配 Jenkins 全局配置的 Node.js 版本名称
    }
    stages {
        stage('拉取代码') {
            steps {
                checkout scm // 拉取 Git 代码
            }
        }
        stage('安装依赖') {
            steps {
                sh 'npm install' // 或 yarn install
            }
        }
        stage('构建项目') {
            steps {
                sh 'npm run build' // 生成 dist/ 目录
            }
        }
        stage('部署到服务器') {
            steps {
                sshPublisher(
                    publishers: [
                        sshPublisherDesc(
                            configName: 'PROD_SERVER', // Jenkins 配置的 SSH 服务器名称
                            transfers: [
                                sshTransfer(
                                    sourceFiles: 'dist/**', // 构建产物
                                    remoteDirectory: '/var/www/html', // 服务器目标路径
                                    execCommand: 'sudo systemctl reload nginx' // 重启 Nginx
                                )
                            ]
                        )
                    ]
                )
            }
        }
    }
}


4. 关键配置详解
  • Node.js 环境
    在 Jenkins 全局配置中安装 Node.js 插件,并指定版本(如 18.x)。

    NodeJS 配置

  • SSH 服务器连接

    1. 进入 Manage Jenkins > Configure System
    2. Publish over SSH 部分添加目标服务器:
      • Name: PROD_SERVER
      • Hostname: 192.168.1.100
      • Credentials: 服务器 SSH 私钥。
  • 构建产物管理
    若需存档构建结果,添加 Post-build 步骤:

    post {
        success {
            archiveArtifacts artifacts: 'dist/**/*' // 保存 dist 内容
        }
    }
    


5. 验证与调试
  1. 手动触发首次构建
    Jenkins 任务页点击 Build Now
  2. 查看日志
    进入构建控制台输出,检查各阶段状态。
  3. 常见问题排查
    • 依赖安装失败:检查网络或 .npmrc 镜像配置。
    • SSH 连接超时:确认防火墙开放 22 端口。
    • 权限错误:确保 Jenkins 用户有 sudo 权限执行 Nginx 重启。

6. 优化建议
  • 并行构建:对大项目拆分 linttestbuild 阶段。
  • 镜像加速:在 npm install 前执行:
    npm config set registry https://registry.npmmirror.com
    

  • 通知机制:集成 Slack/Email 插件发送构建结果。

通过此流程,代码提交后将自动完成:拉取 → 安装 → 构建 → 部署,实现前端项目持续交付。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐