Jenkins + Gitlab 实现项目自动化构建及部署
前言:Jenkins + Gitlab 实现项目自动化构建及部署笔记
参考文章:https://blog.csdn.net/m0_62999427/article/details/138972368
参考文章:https://blog.csdn.net/weixin_56547063/article/details/142028026
Jenkins 编译环境配置
接着在Jenkins先打开全局配置,因为这边jeecg-boot编译需要用到pom.xml
,所以这边配置maven和jdk用于构建的环境
jdk的环境部署可以通过安装插件Maven Integration plugin
实现,如下图所示
注意:通过插件安装的时候,自己需要准备好一个oracle的账号
在安装的过程中发现该插件存在问题,最终还是手动下载了一个安装包,如下图所示
手动指定jdk的目录环境,如下图所示
maven的环境部署可以通过安装插件Maven Integration plugin
实现,如下图所示
然后手动指定一个版本就可以直接进行安装了
配置构建触发器
首先在Gitlab中创建一个代码仓库,其中放入想要在Jenkins项目构建的代码,我这边放的是jeecg-boot项目,语言是Java开发的,如下图所示
这边将github中的jeecg-boot项目推送到gitlab中,这个将其作为后续自动化构建jenkins的项目准备
新建一个新的maven构建任务,我这里命名为jeecg
,如下图所示
注意:因为gitlab默认的分支是main
,而默认jenkins的分支为master
,所以这里的构建任务中需要标注修改下
配置好对应的git凭证,用于jenkins编译的时候进行拉取
重新打开该项目的配置界面,找到如下配置trigger的界面,想要在gitlab推送触发jenkins编译,这边需要进行配置
其中的Secret Token作为jenkins和gitlab之间通信的token,如下图所示
设置GitLab Webhook
Gitlab中找到自己推送的代码项目仓库,选择Settings -> Webhooks
,如下图所示
添加一个Webhook,每次推送都进行触发,通常可以选择Push events
,以便每次推送代码都会触发Webhook,url配置为上面jenkins的trigger地址
我们这边新增一个cicd.txt
的文件,推送到gitlab仓库中,然后来查看webhook是否成功触发,如下图所示
自动化构建脚本
到这里为止,推送自动编译包的流程已经完成了,接下来就是如何进行自动部署到服务器上的操作,jenkins在"Post Steps"流程中提供了编译后的后续操作自动化操作
#!/bin/bash echo "部署的目录和项目名称" DIR="/data/app" projectName="my-boot" echo "待部署的应用服务器,可多台" # 部署项目的ip server_ips="172.16.7.18" for server_ip in ${server_ips[@]} do echo "ssh连接进行备份操作" ssh -Tq -oStrictHostKeyChecking=no root@${server_ip} <<EOF mkdir -p $DIR/backup/${projectName} mkdir -p $DIR/${projectName} if [ -f "$DIR/${projectName}/${projectName}.jar" ];then mv $DIR/${projectName}/${projectName}.jar $DIR/backup/${projectName}/${projectName}-`date "+%Y%m%d_%H%M%S"`.jar fi EOF echo "拷贝jar包到目标服务器的tmp目录" scp -q -oStrictHostKeyChecking=no ${WORKSPACE}/target/*.jar root@${server_ip}:/tmp/${projectName}.jar echo "ssh远程连接进行发布操作" ssh -q -oStrictHostKeyChecking=no root@${server_ip} <<EOF mv /tmp/${projectName}.jar $DIR/${projectName}/${projectName}.jar #jenkins配置中引入关闭和启动脚本 sh $DIR/${projectName}/stop.sh sh $DIR/${projectName}/start.sh EOF done
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY