使用Gitee+Jenkins+Docker完成前后端分离项目的CI/CD
Gitee Webhook配置
URL的格式为 http://[username]:[password或者jenkins的api_token]@www.yupaits.com:8080/generic-webhook-trigger/invoke
。
webhook请求提交的数据参考码云平台帮助文档。
Jenkins插件安装、环境配置
必需插件
Jenkins需要安装以下插件:
- Generic Webhook Trigger Plugin
- Git Plugin
- NodeJS Plugin
全局环境
Jenkins需要配置以下全局工具:
- JDK
- Git
- Maven
- NodeJS
Jenkins任务配置
General
源码管理
填写Gitee代码仓库地址,选择需要构建的分支。
构建触发器
配置触发器参数和触发过滤条件。这里选择了分支名称和项目名称作为构建时的过滤条件。Expression
里的$
是webhook请求中的请求体JSON数据对象,而Variable
中的ref则是Jenkins触发器的变量名,在Optional filter
中可以通过$ref
来引用该变量。
构建环境
由于Todo-Tomato
项目里有基于vue-loader
的前端SPA,所以构建时需要nodejs
和npm
环境。
构建
构建分三步:构建前执行脚本;maven构建;构建后执行脚本。
- 构建前脚本:停止相关docker容器;安装npm依赖;npm构建;dist文件夹移入后台Spring Boot项目的resources/public资源文件目录下。
1 |
|
- 构建后脚本:将构建生成的Jar包和DockerFile移入目标文件夹;停止相关docker容器并删除相关docker镜像;构建docker镜像;运行基于docker镜像的容器。
1 |
|
构建后操作
构建完成后,将生成的Jar包和DockerFile进行归档。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 yupaits的博客!
评论