springboot集成vue使用jenkins持续部署(二)

前言

上一篇文章:springboot集成vue使用jenkins持续部署 还遗留了一个问题,就是sbvadmin这个项目是前后端分离的项目,前端的部署如果需要和后端一同部署的话,我们这边需要将打包好的文档放到static目录下实现构建。那么由于前后端开发,正常公司开发的话,肯定会有不同程序员去开发,故我们这边也是由两个库管理的:
sbvadmin
sbvadmin-vben
上一篇文章我们实现了,sbvadmin的代码一旦提交,云端部署的代码就会自动构建完成更新部署。那么这篇就来解决,sbvadmin-vben的代码一旦提交,如何实现云端自动部署更新。

下面是我的思路:

  1. 把sbvadmin-vben作为sbvadmin的子模块
  2. sbvadmin-vben提交代码,触发jenkins中sbvadmin项目的构建
  3. JenkinsFile中加入把前端代码build并拷贝到static文件中

一、git子模块配置

这里大家可以参考,这篇文章:Git 中submodule的使用
,基本上讲的还不错,我也建了2个仓库试了下。
总的来说

  1. 子模块的代码更新,只在子模块中进行,git commit / git push

  2. 然后到父仓库的子模块中执行:git pull origin main
    springboot集成vue使用jenkins持续部署(二)_第1张图片

  3. 然后回到父仓库,git add -A / git commit / git push 即可。
    springboot集成vue使用jenkins持续部署(二)_第2张图片

  4. 如果你在父仓库的子模块里, 不小心改了代码怎么办。^ - ^ 凉拌
    所以说,千万别这么做;实在不小心,想办法恢复到子模块最新代码即可。

二、推送自动更新(可惜未成功)

1.sbvadmin 加入 sbvadmin-vben子模块

git submodule add https://github.com/billyshen26/sbvadmin-vben
git add -A
git commit -m '加入前端子模块'
git push

cd sbvadmin-vben/
git pull origin main
cd ..
git add -A
git commit -m '同步子模块'
git push

在这里插入图片描述

2.sbvadmin-vben提交代码,触发jenkins中sbvadmin项目的构建

springboot集成vue使用jenkins持续部署(二)_第3张图片

3.JenkinsFile中加入把前端代码build并拷贝到static文件中

updateFrontend.sh

#!/usr/bin/env bash
#服务太拉了,没法云端构建,算了还是把dist放入git管理,然后本地构建后再提交吧
#echo 'build frontend'
#cd sbvadmin-vben
#yarn  安装依赖,只需执行一次
#yarn build
echo 'update dist'
cd adminserver/admin-web/src/main/resources/static
rm -fr *
cd ../../../../../../sbvadmin-vben
cp -a dist/* ../adminserver/admin-web/src/main/resources/static/

三、配置定时更新

第二步的思路还是可惜了,一方面我的服务器太卡了,另一方面jenkins似乎接不到sbvadmin-vben的webhook推送。所以接下来就定时更新吧。找个晚上的时间。
(算了,服务太拉了,没法云端构建,还是把dist放入git管理,然后本地构建后再提交吧)

四、本地构建,再推送到云端

  #!/bin/bash
  # 更新前端
  echo '**********************更新前端***********************'
  cd vue_workspace/svbadmin-vben
  # yarn build
  # git pull
  # git add -A
  # git commit -m 'update dist' --no-verify
  # git push
  # 更新后端
  echo '**********************更新后端*************************'
  cd ../../idea_workspace/sbvadmin
  cd sbvadmin-vben
  git pull origin main
  cd ..
  git pull
  git add -A
  git commit -m 'update all'
  git push
  echo '*************************完成*************************'


总结

  1. 这个文章算是写si了,实在服务器太。。。 就这样吧,以后搞台好一点的服务器再试试
  2. 第二种方式的缺点是;前端没有修改代码,构建的时候也会执行前端相关步骤,比较浪费服务器。算了反正也不用了。
  3. github还是不稳定,后面看看能不能搞到gitee上

问题

  1. The engine “node” is incompatible with this module. Expected version “^12 || >=14”. Got “10.19.0”
    升级node:
sudo apt install npm
sudo npm install n -g

2.cross-env: not found

记得先yarn安装依赖

参考文档:
Yarn 安装 Ubuntu


svbadmin学习日志

本学习日志是使用Springboot和Vue来搭建的后台管理系统:
演示地址:http://118.31.68.110:8081/index.html
账号:root
密码:123
所有代码可以在gitbub上找到,切换到相应分支即可。【代码传送门】

正篇

第一节 spring boot 模块化构建项目
第二节 整合mybatisplus完成用户增删改查
第三节 整合springsecurity实现基于RBAC的用户登录
第四节 springsecurity结合jwt实现前后端分离开发
第五节 使用ResponseBodyAdvice格式化接口输出
第六节 springboot结合redis实现缓存策略
第七节 springboot结合rabbitmq实现队列消息
第八节 springboot结合rabbitmq实现异步邮件发送
第九节 利用springboot的aop实现行为日志管理
第十节 利用Quartz实现数据库定时备份
第十一节 springboot配置log输出到本地文件
第十二节 使用flyway对数据库进行版本管理
第十三节 springboot配合VbenAdmin实现前端登录
第十四节 springboot配合VbenAdmin实现用户CURD
第十五节 基于RBAC的权限管理VbenAdmin前端实现
第十六节 springboot 打包vue代码实现前后端统一部署

番外

2.1 数据库设计原则
3.1 配置apifox自动获取登录的token
13.1 springboot 全局捕捉filter中的异常
14.1 springsecurity整合mybatisplus出现isEnable的问题和解决方案
springboot集成vue使用jenkins持续部署


你可能感兴趣的:(svbadmin,jenkins,spring,boot,vue.js)