安装并使用CICD 工具Jenkins+GitHub、GitLab、BitBucket等完成持续集成部署,这里以GitHub为例
实验基于Windows平台,其他平台安装请参考官网
安装完后以Jenkins是以Windows服务运行,默认端口号8080
修改默认端口号,在安装目录下的jenkins.xml文件中进行修改,这里暂不做修改
安装完后,默认浏览器会打开访问Jenkins的Web页面,如下图,按照提示一步一步完成即可
然后进入插件安装页面,这么默认选择,系统推荐安装的插件,后续在安装一些Maven等插件,点击安装推荐插件后,等待安装完成【当然自定义安装也行,可以提交找好自己需要安装那些插件,后续在慢慢添加都行】
然后重启后到插件管理去安装一个Maven插件
这里因为是Springboot的项目,使用Springboot内置的Tomcat,如果是使用外部的Tomcat,或者war工程,需要安装Deploy to Web Container 插件
使用外部Tomcat是注意配置一下Tomcat的编码在server.xml文件中
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
全局工具配置:
-
配置Maven的Settings文件,如果自由有自定义的就配置自己的,否则用默认的
-
配置JDK
-
配置Git
-
配置Maven
-
新建一个自由风格的项目,这里因为已经建立了所有不能重名
点进去进行配置
-
设置构建的保留策略
-
配置代码仓库的URL链接
如果上面的git仓库连接,在发布是,总是落后一个版本,可能是由于服务器时间差的原因,解决方法
将链接改为如下
git@github.com:CUITLLB/springboot-jenkins-demo.git@HEAD
注意:代码的URL在Jenkins上,必须正好定位到pom.xml文件的位置,这里因为git项目不存在这个问题,如果是使用SVN,就需要注意这一点
认证这里需要配置认证远程GitHub仓库的私钥,也可以到认证管理李去配置
+ 选择代码分支
需要注意的是这里的Jenkins安装由于路径中带有空格,所以要用引号,还有JENKINS_HOME即是Jenkins的安装目录,或者使用变量WORKSPACE,则下面的路径就可以写成%WORKSPACE%\spring-boot-demo\target\jenkins.demo-0.0.1-SNAPSHOT.jar
这里的maven打包操作省略了,需要就加mvn clean package
构建后发生邮件配置,Jenkins邮件发送提示配置参考
点击构建后,控制台输出
打开浏览器访问
这里没有配置触发器,一般来说在项目中都不会让他自动触发发布,至少LZ接触的都是手动去发布,当然如果有需求也可以去配置定时触发器发布等功能,或者使用版本管理器SVN,GIThub的钩子函数来触发构建,触发远程构建实际就是请求一个Jenkins中的job的URL,所以只需要在构造函数中使用curl、或者httpie命令[这个命令需要额外安装]请求这个job URL即可实现远程构建触发
SVN举例:
Linux 的 curl 命令用来发送 HTTP 请求。
-X 参数:指定请求方式
-v 参数:显示响应结果
-u 参数:携带用户名/密码
-H 参数:携带请求消息头信息
curl -X post -v -u [Jenkins 用户名]:[Jenkins 密码] -H "请求消息头信息" http://[服务器 IP 地址]:[服务器端口 号]/jenkins/job/[Jenkins 项目名称]/build?token=[身份验证令牌]
curl -X post -v -u admin:2f6bff33bda14baba83ba1c002045f05 -H "Jenkins-Crumb:88a12946e07d82b3b0d567c7c4610c9a" http://192.168.70.131:8080/jenkins/job/ProOne/build?token=ATGUIGU_TOKEN
一旦有代码提交,就会触发钩子函数调用Job,从而实现自动部署
Jenkins2.x开始支持Pipeline的形式构建和发布项目,具体学习使用参考
同时Jenkins也支持Docker安装和使用,同样参考官网说明