利用jenkins自动构建前端项目并部署到远程服务器上运行
-
新建一个自由风格的任务
-
-
因为该前端项目和我整个项目是在一个地址呢,在利用jenkins自动构建springcloud项目已经拉取过全部代码了,所以这里不再拉取代码了
-
构建步骤只需要到利用jenkins自动构建springcloud项目的工作空间中将相应的前端项目打包并发送到远程服务器B即可
#!/bin/bash
echo "当前构建的任务名称:$JOB_NAME"
#目标服务器B,即要运行jar包的服务器
serverB="远程服务器B的ip"
#目标服务器B存放dist包路径
Bpath=/home/mogu_blog/${JOB_NAME}
echo "--------------进入前端工作目录/home/jenkins/workspace/mogu/${JOB_NAME}/---------------------"
cd /home/jenkins/workspace/mogu/${JOB_NAME}/
echo "-------------开始构建项目----------------"
# 指定node-sass的国内镜像源
npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass
# 使用淘宝镜像源进行依赖安装,解决国内下载缓慢的问题(出现警告可以忽略)
npm install --registry=https://registry.npm.taobao.org
# 打包
npm run build
#压缩
tar -cvzf dist.tar.gz ./dist
#传输jenkins构建好的jar包和Dockerfile到目标服务器B上
for host in $serverB
do
echo "目标服务器:*********$host*********"
echo "目标服务器存放dist包位置:**************$Bpath**************"
ssh root@$host
scp -r /home/jenkins/workspace/mogu/${JOB_NAME}/dist.tar.gz root@${host}:${Bpath}
scp -r /home/jenkins/workspace/mogu/${JOB_NAME}/Jenkinsfile root@${host}:${Bpath}
echo "文件传输完成!!!!"
echo "检查目标服务器$host->$Bpath路径下是否存在dist包"
done
-
构建后需要远程服务器执行相应的脚本发布项目到nginx中
-
点击保存,子项目构建任务就完成了。只要在git上有新的代码提交,父项目会触发webhook自动构建,等待父项目构建后,需手动点击子任务,这样就可以远程部署服务到另一台服务器并运行了。
jenkinsfile脚本内容如下:
#!/bin/sh
tar -zxvf dist.tar.gz
systemctl restart nginx
评论区