目录
上一篇文章讲了Jenkins的环境配置,这篇说SpringBoot、GitHub和Jenkins的结合,公司项目用的Gitlab,但是Jenkins要多装插件才支持Gitlab,步骤多了点。这篇还是从GitHub引导入门。
GitHub设置
先得有个SpringBoot项目吧,下面演示idea新建项目,并提交到GitHub
idea新建项目
idea新建spring项目
share项目到GitHub
把新建项目share到GitHub上
GitHub终于支持不付费用户新建private仓库了
在GitHub上刚刚提交的项目
GitHub项目设置webhooks
webhooks的作用
英文释义:Webhooks are “user-defined HTTP callbacks”. 即是用户定义的HTTP回调接口
举个栗子理解webhooks在这里的作用,当代码提交GitHub仓库后,即产生了push事件,GitHub通过webhooks调用指定的URL
在上一篇文章里面,Jenkins的访问路径是http://ip:8999/jenkins,那么webhook的配置应该是http://ip:8999/jenkins/github-webhook/,注意以’/'结尾
这个图中是我服务器上配置好的Jenkins路径,请根据你的具体情况配置,不用https也是可以的
GitHub会测试下webhooks可不可用
Jenkins设置
确认Jenkins的GitHub插件已安装
登录第一篇文章中配置好的Jenkins后台,从首页依次点击系统管理->插件管理->Installed,搜索Github Plugin,如果Github Plugin没安装,请安装Github Plugin插件
新建Jenkins项目
项目URL不是git路径
点击Add
选择GitHub账号后,等一会红色告警消失,说明这个账号访问该GitHub项目。为了安全考虑,可以考虑给GitHub test_jenkins新建一个访问token,配置如下secret text,我这里使用了GitHub账户和密码,就不配置了
选择maven构建SpringBoot项目
构建后执行shell脚本
保存配置,回到项目主页,选择立即构建
点击查看构建过程
点击console output,可以看到项目从GitHub拉取下来,并使用maven构建
这是shell脚本的输出
配置SpringBoot项目的重启
修改上面的shell
BUILD_ID=DONTKILLME
#!/bin/bash
# find jar
echo `pwd`
cd ./target
FILENAME=$(find -name test_jenkins**.jar)
echo $FILENAME
JARNAME=${FILENAME##*/}
# stop previous service
PID=$(ps -ef | grep $JARNAME | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo $JARNAME is already stopped
else
echo kill $PID
kill -9 $PID
fi
# cp jar to /root/test_jenkins and start service
cd /root/test_jenkins
cp /root/.jenkins/workspace/test_jenkins/target/$JARNAME .
nohup java -jar $JARNAME > test_jenkins.log &
# make sure the service had started
ps -ef | grep java
保存,点击立即构建
到这里Jenkins的配置就结束了,下面演示下能有效提高我们开发效率的整个过程
演示SpringBoot+GitHub+Jenkins的整个过程
添加controller,修改端口
commit and push
如果出现这个,说明webhook通知到了,到console output查看构建和服务启动情况
没报错,项目重新启动,OK
后续&扩展
我们发现Jenkins很强大,借助完整的shell支持,Jenkins可以完成很多重复工作,提高开发效率。