Jenkins配置自动化流程
# 1. 新建任务
提示
当任务比较多时,可以使用视图来进行快速筛选任务,一般将一个项目的多个子任务,添加到同一个视图内,这样便于快速查看和管理。
登录Jenkins,点击新建视图按钮,新建一个视图,命名为若依


视图创建成功后,会跳转到编辑视图页面。

编辑视图页面,可以选择哪些任务关联到当前视图上。因为目前我们还没有创建任务,所以不用编辑,直接点击Save按钮。

选择新建任务按钮,创建一个新任务。

输入任务名称,选择构建一个自由风格的软件项目,点击OK,跳转到任务配置页。

# 2. 配置任务
在源码管理输入框,输入GitLab中若依项目的地址。

提示无法连接地址,因为没有权限。在Credentials按钮下面,点击添加,再点击Jenkins,新增一个凭证。


点击添加,回到任务配置页,选择刚刚添加的凭证。

提示
如果依然还有无法连接的警告,请自行检查gitlab的用户名和密码是否填写错误。或者填写的gitlab用户名,没有该仓库的访问权限。

指定分支这里,默认是master,如果你的分支不是master,可以根据实际情况修改为正确的分支名。

勾选Delete workspace before build starts选项,每次构建任务执行时,都先删除旧数据。

构建步骤,选择执行shell
#进入工作目录,这里引用的是Jenkins提供的环境变量,在执行脚本时,会自动替换为当前目录名称
cd $WORKSPACE
#将项目整体打包,先清除旧包,再打包
mvn clean install -Dmaven.test.skip=true -Dmaven.compile.fork=true
#进入ruoyi-auth目录
cd $WORKSPACE/ruoyi-auth
#构建ruoyi-auth镜像
mvn clean package docker:build -DpushImage -Dmaven.test.skip=true -Dmaven.compile.fork=true
#删除本地的docker镜像
docker rmi -f 192.168.127.132:80/ruoyi_dev/ruoyi-auth:3.6.5
2
3
4
5
6
7
8
9
10
提示

构建镜像时,会先在配置的docker打包地址这个服务器(Jenkins服务器),产生镜像,然后再推送到docker镜像仓库地址。我们使用镜像时,都是从harbor镜像仓库来拉取的,所以在构建完镜像后,删除Jenkins服务器上的本地镜像,以节省服务器存储空间。

配置完脚本,点击Save按钮保存。

# 3. 执行任务
点击立即构建,开启构建任务。

点击构建任务,可以实时查看构建日志


任务执行完成,登录harbor,查看推送的镜像。

继续新建任务,将其他模块都加上。
提示
当有已经创建好的任务时,可以通过复制功能,快速创建其他任务。

# 4. 配置前端打包
前端打包任务配置和之前的都是一样的,只有执行shell的脚本不一样。
cd $WORKSPACE/ruoyi-ui
npm config set strict-ssl false
npm install
npm run build:prod
docker build -t 192.168.127.132:80/ruoyi_dev/ruoyi-ui:3.6.5 .
docker push 192.168.127.132:80/ruoyi_dev/ruoyi-ui:3.6.5
docker rmi -f 192.168.127.132:80/ruoyi_dev/ruoyi-ui:3.6.5
2
3
4
5
6
7
8
9

所有的任务都打包完成后,就可以配置启动任务了。
# 5. 安装ssh插件
要配置自动更新任务,需要远程执行shell,Jenkins需要安装ssh插件
点击左侧系统管理

点击插件管理


搜索框输入ssh

选择Publish Over SSH插件,并安装。


等待安装完成,就可以使用了。
# 6. 配置SSH服务
点击系统管理——>系统配置

拖到最底下,找到SSH Servers

点击新增

填写服务器信息,点击Save,保存。
# 7. 配置启动服务任务
新建一个任务

不需要其他任何配置,只在构建步骤这里,选择Send files or execute commands over SSH


在SSH Server选项,选择刚刚配置好的ssh服务器。
点击高级,勾选Credentials,配置远程服务器的用户名和密码

在Exec command输入框内,输入需要远程执行的shell命令
#进入目录
cd /root/project/ruoyi/server
#先停止所有服务
docker-compose down
#删除所有包含“ruoyi”关键词的镜像
docker images --format "{{.Repository}}:{{.Tag}}" | grep 'ruoyi' | xargs docker rmi
#启动所有服务,docker会自动拉取镜像
docker-compose up -d
2
3
4
5
6
7
8

任务配置完成后,点击立即构建

构建成功后,访问项目部署服务器的10003端口

登录系统,查看功能是否正常。

进入nacos,查看服务是否注册正常

# 8. 总结
到此为止,整个自动化部署流程就建立好了,再回顾一下整个流程:
当有新的功能提交后,登录Jenkins后台,直接执行对应模块的构建任务,然后再执行启动任务就行。
其实利用GitLab的hook功能,可以做到一提交代码就自动构建,完全不需要人为参与构建。只是这种构建方式过于频繁,生产环境是不能使用这种方式的。
Jenkins还有其他更多的触发器来自动触发构建,这个各位读者可以自行探索。