Jenkins 持续集成:配置前端项目自动构建与部署
·
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)。
-
SSH 服务器连接:
- 进入 Manage Jenkins > Configure System。
- 在
Publish over SSH部分添加目标服务器:- Name:
PROD_SERVER - Hostname:
192.168.1.100 - Credentials: 服务器 SSH 私钥。
- Name:
-
构建产物管理:
若需存档构建结果,添加 Post-build 步骤:post { success { archiveArtifacts artifacts: 'dist/**/*' // 保存 dist 内容 } }
5. 验证与调试
- 手动触发首次构建:
Jenkins 任务页点击 Build Now。 - 查看日志:
进入构建控制台输出,检查各阶段状态。 - 常见问题排查:
- 依赖安装失败:检查网络或
.npmrc镜像配置。 - SSH 连接超时:确认防火墙开放 22 端口。
- 权限错误:确保 Jenkins 用户有
sudo权限执行 Nginx 重启。
- 依赖安装失败:检查网络或
6. 优化建议
- 并行构建:对大项目拆分
lint、test、build阶段。 - 镜像加速:在
npm install前执行:npm config set registry https://registry.npmmirror.com - 通知机制:集成 Slack/Email 插件发送构建结果。
通过此流程,代码提交后将自动完成:拉取 → 安装 → 构建 → 部署,实现前端项目持续交付。
更多推荐
所有评论(0)