Jenkins基本部署
🔧 前期准备工作
安装jenkins
- 在自己的服务器上安装java 和jenkins,并启动jenkins服务。(具体查询资料)
安装必要的 Jenkins 插件
在 Jenkins 后台,你需要先安装一些关键插件:
- Gitee Plugin:用于 Jenkins 与 Gitee 集成,支持 Webhook 触发构建等核心功能 。
- NodeJS Plugin:用于管理项目构建时所需的 Node.js 环境 。
- Publish Over SSH(可选):如果你希望 Jenkins 在构建完成后,自动将文件推送到服务器上的指定目录并执行部署命令,这个插件会很有用 。
配置全局工具
在 系统管理-> 全局工具配置中:
- 配置 Node.js:在 NodeJS部分,添加一个 Node.js 安装,建议选择与你本地开发一致的 LTS 版本(如 18.x)。Jenkins 会自动下载安装 。
- 配置 Git:确保 Git 的路径正确,以便 Jenkins 可以拉取代码。
- 配置 Gitee 连接 在 系统管理-> 系统配置中找到 Gitee Configuration部分: Gitee 域名 URL:填写 https://gitee.com。 证书令牌:你需要创建一个 Gitee API 令牌。在 Gitee 的个人设置里,找到「私人令牌」,并生成一个新的令牌(需要勾选相应的权限,如 projects权限)。然后在 Jenkins 中添加一个类型为 Gitee API Token的凭证,并在这里选择它。最后点击“测试链接”确保连接成功 。
⚙️ 创建与配置 Jenkins 任务
新建任务
点击 Jenkins 首页的「新建任务」。 输入任务名称,选择「构建一个自由风格的软件项目」。
源码管理(Source Code Management)
选择 Git。
- Repository URL:填写你的 Gitee 仓库的 HTTPS 或 SSH 地址(例如:https://gitee.com/your_username/your-vite-project.git)。
- Credentials(凭证):点击“添加”按钮,根据你的仓库地址类型配置凭证 。 如果使用 HTTPS 地址,通常选择“用户名与密码”,填写你的 Gitee 账号和密码(或其他访问令牌)。 如果使用 SSH 地址,需要选择“SSH Username with private key”,将服务器上生成的私钥内容粘贴进来 。 指定要构建的分支(例如 */main或 */master)。
构建触发器(Build Triggers)
这是实现自动化(代码推送后自动构建)的关键步骤。
- 勾选 Gitee webhook触发构建 。
- 记录下界面中生成的 Webhook URL(格式通常为 http://<你的Jenkins服务器IP:端口>/gitee-project/你的任务名)。稍后需要在 Gitee 仓库中设置这个 URL 。 点击 “生成” 按钮创建一个 Webhook 密码,并记录下来 。
构建环境(Build Environment)
- 勾选 Provide Node & npm bin/ folder to PATH。
- 在 NodeJS Installation下拉列表中,选择你之前在全局工具中配置的 Node.js 版本 。这能确保构建环境使用正确的 Node.js 和 npm。
构建(Build Steps)
- 增加一个 执行 Shell 构建步骤,并填入以下类似的命令。这些命令的作用是安装依赖、打包你的 Vite 项目。
shell
# 打印环境信息,用于调试
node -v
npm -v
# 安装项目依赖
# 如果项目使用 pnpm,可以改为 pnpm install --frozen-lockfile
npm install --registry=https://registry.npmmirror.com
# 执行打包脚本,通常在 package.json 中定义为 "build"
npm run build
# 打包后的文件通常会在项目根目录下的 'dist' 文件夹里
# 你可以在这里添加一些后续操作的命令,例如压缩dist文件夹,或者通过scp传输等
# 但如果使用下文提到的“构建后操作”通过SSH发送,则这里不需要处理
echo "Build completed successfully!"注意事项
如果网络不佳,可以在 npm install命令后加上 --registry=https://registry.npmmirror.com使用国内镜像源加速 。
将打包的dist方法服务器上
注意:如果部署的jenkins与你要部署的服务器是同一台,可以直接进行文件操作,不需要再进行下面操作。 直接在shell里继续添加指令
shell
# 1. 删除Web服务器根目录下的旧文件 (可选,确保全新部署)
rm -rf /www/wwwroot/your-site/*
# 2. 将本次构建生成的dist目录下的所有文件,复制到Web服务器根目录
cp -rf dist/* /www/wwwroot/your-site/注意:如果遇到权限问题,可能需要额外授权 (请根据你的服务器实际用户组情况调整)
构建后操作(Post-build Actions)(可选但推荐)
如果你安装了 Publish over SSH插件,可以在这里配置,让 Jenkins 自动将打包好的文件部署到你的 Web 服务器上。
- 在 系统管理-> 系统配置中先配置好远程服务器(你的腾讯云服务器)的 SSH 连接信息,包括 IP、用户名、密钥等 。
- 在任务配置中,点击“增加构建后操作”,选择 Send build artifacts over SSH。
- Source files:填写 dist/**,表示要传输整个 dist目录下的所有内容。
- Remove prefix:填写 dist,这样传输时会把 dist这个目录名去掉。
- Remote directory:填写一个远程目录,这个目录会与你之前配置的服务器基础路径拼接。例如,如果最终想部署到 /www/wwwroot/your-site,就在这里填写 www/wwwroot/your-site。这个目录需要已存在,并且 Web 服务器(如 Nginx)有读写权限。
- Exec command(可选):可以填写在文件传输完成后,需要在远程服务器上执行的命令。例如,重启 Nginx 或刷新缓存。
shell
# 重新加载 Nginx 配置(假设你的站点已配置好)
sudo systemctl reload nginx🔔 配置 Gitee Webhook 实现自动触发
- 进入你的 Gitee 仓库页面。
- 点击「管理」-> 「WebHooks」。
- 点击「添加 WebHook」。
- WebHook URL:填写上面第3步中记录下的 Jenkins Webhook URL。注意:如果你的 Jenkins 服务部署在局域网或使用了非标准端口,请确保此 URL 能从公网访问。一个常见的格式是:http://<你的Jenkins服务器公网IP:端口>/gitee-project/<你的任务名>。
- WebHook 密码:填写上面第3步中在 Jenkins 生成的 Webhook 密码 。
- 点击「添加」。
- 添加成功后,可以点击「测试」按钮。如果返回状态码 200 且 Jenkins 任务开始自动构建,说明配置成功 。
🚀 测试与验证
- 完成以上所有配置后,点击 Jenkins 任务页面的「保存」。
- 手动触发测试:在 Jenkins 任务页面,点击「立即构建」。在构建历史中查看控制台输出,观察是否有错误。
- 自动触发测试:在你的本地 Vite 项目中做一点小修改(例如修改 README.md),然后推送到 Gitee 的对应分支。观察 Jenkins 任务是否自动开始构建。如果成功,说明全自动化流水线已经搭建完成 。
- 访问验证:构建成功后,通过浏览器访问你的腾讯云服务器 IP 或域名,检查网站是否已更新。
💡 补充说明
- 服务器Web服务:本回答重点在 Jenkins 的配置。请确保你的腾讯云服务器上已经安装并配置好了 Web 服务器(如 Nginx),并将其根目录(root)指向了你在 Jenkins “构建后操作”中设置的 Remote directory(例如 /www/wwwroot/your-site)。同时,确保防火墙/安全组已开放 Web 服务器所使用的端口(如 80、443)。
- 权限问题:在执行 Shell 脚本或文件传输时,可能会遇到权限问题。请确保 Jenkins 进程用户(通常是 jenkins)有权限执行 npm 命令和读写相关目录。有时需要将目录权限设置为 755或 777(出于安全考虑,777 权限需谨慎使用)。