配置Jenkins集成GitHub
Jenkins 的下载与安装
Windows 版本的 Jenkins 可以从官方网站(jenkins-ci.org)中下载,Jenkins集成GitHub需要较高的版本,推荐选择最新的稳定版本。
打开安装包后按照提示即可完成安装。
Jenkins 基于 Web 服务,以服务的方式启动,默认访问端口为 8080。安装成功后,在 cmd 中进入 Jenkins 的安装目录,然后输入以下命令以 启动该服务:
如果想关闭 Jenkins,则只需在网址栏输入 http://localhost:8080/exit,点击确认后,即可
关闭 Jenkins:
在本地访问的地址是 http://localhost:8080/。客户端远程访问时,替换 localhost 为服务器 IP 地址即可,即 http://192.104.103.101:8080/。启动后,进入 Jenkins 主界面,某些版本需要通过输入管理员账户进入主界面
主界面如图所示:
接着安装GitHub相关插件
为了让Jenkins可以连接到自己的GitHub账号
需要先去GitHub新建立一个token,并授予权限gist,ropo,user
然后在Jenkins里新建凭据,注意设置类型为Secret text,然后在Secret处输入token
建立凭据成功
同时需要在Jenkins设置中指定GitHub Server将刚刚建立好的凭据放入,以便连接到GitHub的API
为了实现Jenkins对GitHub项目的自动拉取和更新,并且进行自动部署,在配置GitHub Server时将hock勾选上,同时在GitHub的项目中配置好hock
新建一个Repository,并配置hock
Jenkins中新建任务,选择类型为Freestyle project
选择GitHub项目,将项目.git的url填入
源码管理设置为git,同时输入项目.git的url与配置,并且设置好GitHub账号登录的证书,证书可以通过新建立GitHub账号凭据实现,最后指定分支
构建触发器,勾选Web Hock,启用GitHub的hock功能,同时配置轮询,监听代码变动实现实时更新
新建任务完毕
新建任务后稍等一会即可看到项目进行自动构建,并将GitHub项目中存在的文件拉取过来
下面进行测试,验证GitHub项目是否配置成功,能否通过hock实现Jenkins中工作空间的自动更新
在本地新建一个text.txt文件,并push到GitHub项目仓库,可以看到GitHub仓库中已经显示text.txt文件
Jenkins中正在进行构建
构建完毕,至此可以认为Jenkins + GitHub的集成环境配置完成
使用 Maven 作为构建工具进行持续集成
向GitHub远程仓库上传maven项目
在Jenkins中安装maven相关插件
在Jenkins中配置好jdk及maven版本,不然无法添加maven任务
创建maven任务
选择GitHub项目,将项目.git的url填入
源码管理设置为git,同时输入项目.git的url与配置,并且设置好GitHub账号登录的证书,证书可以通过新建立GitHub账号凭据实现,最后指定分支
构建触发器,勾选Web Hock,启用GitHub的hock功能,同时配置轮询,监听代码变动实现实时更新
配置maven
新建任务完毕
稍等一会,就可以看到Jenkins自动从GitHub仓库拉取maven项目,项目构建完毕
可以在控制台输出看到下载了maven相关依赖
基于Blue Ocean的 Pipeline
Jenkins中通过安装Blue Ocean插件,可以快速创建 Pipeline, Pipeline将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程,形成流水式发布,构建步骤视图化
如图所示,创建GitHub项目的流水线
可创建流水式集成测试方案,会按照流水线进行一步步测试
在保存后Jenkins会自动在GitHub远程仓库里创建 Jenkinsfile然后将刚刚所设置的测试步骤转化为代码,然后Jenkins会开始执行测试
通过 Pipeline可以很方便实现流水式的持续交付,执行阶段通过视图一目了然
邮件系统集成
在邮箱中开启SMTP服务,然后在Jenkins设置中配置SMTP服务器
不同邮箱的SMTP服务代码不同,需要查阅对应服务代码
如图所示配置成功
对 Extended E-mail Notification进行配置
在任务的设置中开启构建后操作
其中邮件内容(Default Content)可以参考如下内容进行填写:
(本邮件是程序自动下发的,请勿回复!)
项目名称:$PROJECT_NAME
构建编号:$BUILD_NUMBER
svn 版本号:${SVN_REVISION}
构建状态:$BUILD_STATUS
触发原因:${CAUSE}
项目地址:${Jenkins_URL}job/${PROJECT_NAME}
文件签入记录:${Jenkins_URL}job/${PROJECT_NAME}/changes
本次构建地址:${Jenkins_URL}job/${PROJECT_NAME}/${BUILD_NUMBER}
构建日志:${Jenkins_URL}job/${PROJECT_NAME}/${BUILD_NUMBER}/console
对项目进行更改,push到GitHub远程仓库进行测试,Jenkins会自动拉取最新结果并进行构建
收到邮件