Jenkins+git自动打包部署Springboot+Vue项目

    目前项目组在做的项目后端是基于Springboot,前端是Vue,对于这个项目我们实现了一个从自动编译、打包、再到部署的集成。

    我们的代码是托管在git上的,开发人员使用dev分支,测试人员使用release分支。当开发人员完成功能开发后,会发起代码合并申请,当代码被合并到release后,Jenkins自动拉取代码并进行编译。

一、这里重点描述一下Git合并代码如何自动触发Jenkins上的任务的。

(1)Jenkins自动拉取Git代码,这个不做过多描述,大家看看就懂,这里注意是拉取release分支的。

Jenkins+git自动打包部署Springboot+Vue项目_第1张图片

(2)Jenkins配置构建触发器,用于分支合并时触发Jenkins执行。这里需要勾选触发器Build when a change is pushed to GitLab,如果没有该选项,请去插件管理安装插件GitLab Plugin、Gitlab Hook Plugin。

Jenkins+git自动打包部署Springboot+Vue项目_第2张图片

Enabled GitLab triggers:启动哪些触发器,这个根据自己的需要来选择。我选择的是Accepted Merge Request Events(接受合并请求事件时触发),右下角的【高级】选项点开,按名称筛选自己需要的分支,并且生成编码(这一串编码是给Git使用的安全令牌)

Jenkins+git自动打包部署Springboot+Vue项目_第3张图片

到这里Jenkins的配置已经完成了,现在配置Git。

(3)Git上对应的项目选址设置->导入所有仓库(我这里是汉化版的)

Jenkins+git自动打包部署Springboot+Vue项目_第4张图片

将Jenkins里生成的URL和字符串配置到Git上,触发器要选择自己需要的,我这里是合并分支时触发,所以选择“合并请求事件”

Jenkins+git自动打包部署Springboot+Vue项目_第5张图片

以上就完成了合并分支自动触发Jenkins任务的操作。

二、接下来是编译代码和打包,步骤是:编译前端工程、拷贝前端文件到后端工程、编译后端工程。这个步骤里我创建了2个任务,将编译前端工程、拷贝前端文件到后端工程放在任务1里,编译后端工程、部署项目放在任务2里,Jenkins上配置当任务1完成后自动执行任务2。

在后端工程的任务里配置构建触发器:当前端工程完成后自动执行后端任务。

Jenkins+git自动打包部署Springboot+Vue项目_第6张图片

(1)关于任务1:编译前端工程、拷贝前端文件到后端工程,前端工程是Vue,需要配置node,进入【全局工具配置】菜单,配置NodeJS

Jenkins+git自动打包部署Springboot+Vue项目_第7张图片

任务1里的构建环境要选择Provide Node & npm bin/ folder to PATH

Jenkins+git自动打包部署Springboot+Vue项目_第8张图片

构建完成后需要拷贝前端文件到后端工程,供后端构建时使用。这里使用Execute shell来实现,npm install、npm run dll、npm run build是编译前端代码,cp是拷贝编译好的前端文件到后端工程。

Jenkins+git自动打包部署Springboot+Vue项目_第9张图片

(2)关于任务2,编译后端工程。后端工程就是一个maven任务,根据pom.xml打包,maven的配置这里就不详细说明,编译步骤很简单,就是命令mvn clean install -Dmaven.test.skip=true -X

Jenkins+git自动打包部署Springboot+Vue项目_第10张图片

这里主要详细介绍一下编译完成后的自动部署与自动启动,使用Execute shell来实现,总共4个步骤:

Jenkins+git自动打包部署Springboot+Vue项目_第11张图片

步骤1:杀进程

步骤2:进入目录,删除旧的程序包

步骤3:拷贝新的程序包到应用目录下

步骤4:启动新程序

这里附上杀进程的脚本1和启动进程的脚本2:

Jenkins+git自动打包部署Springboot+Vue项目_第12张图片
脚本1
脚本2

以上就完成了从拉取代码,到编译打包,再到部署的全部步骤。

你可能感兴趣的:(Jenkins+git自动打包部署Springboot+Vue项目)