背景
略
什么是Jenkins
什么是Jenkins
Jenkins是一个用Java编写的开源的持续集成工具,提供了软件开发的持续集成服务,可监控并触发持续重复的工作,具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点。更多介绍参考维基介绍.
Jenkins有哪些功能
Jenkins的主要功能包括:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。
Jenkins的特点
1、易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。
2、易于配置-所有配置都是通过其提供的web界面实现。
3、集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。
4、生成JUnit/TestNG测试报告。
5、分布式构建支持Jenkins能够让多台计算机一起构建/测试。
6、文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
7、插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。
Jenkins能做什么
1、软件构建自动化:
配置完成后,CI系统会依照预先制定的时间表,或者针对某一特定事件,对目标软件进行构建。
2、构建可持续的自动化检查:
CI系统能持续地获取新增或修改后签入的源代码,也就是说,当软件开发团队需要周期性的检查新增或修改后的代码时,CI系统会不断确认这些新代码是否破坏了原有软件的成功构建。这减少了开发者们在检查彼此相互依存的代码中变化情况需要花费的时间和精力(说直接一点也是钱啊,呵呵)。
3、构建可持续的自动化测试:
构建检查的扩展部分,构建后执行预先制定的一套测试规则,完成后触发通知(Email,RSS等等)给相关的当事人。
4、生成后后续过程的自动化:
当自动化检查和测试成功完成,软件构建的周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。这样,构件才能更迅速地提供给用户使用。
Jenkins部署
Jenkins官网有适应不同平台的不同安装方式,考虑到要做成稳定的服务,本次下载war
Jenkins依赖于Java环境,首先需要安装和配置Java环境,详细步骤省略
直接启动
java -jar jenkins.war
借助中间件或容器
1、安装配置tomcat
2、配置nginx代理
3、部署Jenkins
4、启动
Jenkins部署新项目
登录Jenkins
访问上一步中配置好的域名
初次登录的配置
1、输入Jenkins随机生成的口令(控制台获取)
2、执行默认的安装操作(必要的插件,详见文末附录)
3、创建用户,配置密码,邮箱等信息
系统设置
shell编码设置
管理Jenkins-->系统设置-->全局设置-->环境变量-->配置UTF-8
用于Jenkins内部shell UTF-8编码设置
RSS/Email配置
略
构建项目
构建一个maven项目
略
配置源码仓库
输入SVN地址或其他源码仓库地址
配置触发器
Jenkins支持多种触发器配置,包括:
1、定期进行构建(Build periodically),定时器使用示例如下:
H(25-30) 18 1-5: 工作日下午6点25到30分之间进行build
H 23 1-5:工作日每晚23:00至23:59之间的某一时刻进行build
H(0-29)/15 :前半小时内每隔15分钟进行build(开始时间不确定)
H/20 :每隔20分钟进行build(开始时间不确定)
2、根据提交进行构建(Build when a change is pushed to GitHub)
3、定期检测代码更新,如有更新则进行构建(Poll SCM)
配置SonarQube
1、点击“增加构建后操作步骤”,新增Sonar([什么是Sonar](https://www.ibm.com/developerworks/cn/java/j-lo-sonar/ "什么是Sonar"))
2、配置Sonar(JDK等)
配置自动化部署
1、输入war包存放路径
一般存放在Jenkins的{%Jenkins_dir%}\\jobs\项目名\workspace\target目录下(根据JENKINS版本不同可能会不一样,当前版本2.91)
2、配置Context path,即项目的访问根地址,比如localhost:8080/根地址
3、新增容器,选择tomcat。(插件支持部分容器,如果需要发布到其他web容器,可考虑让容器与maven集成,使用mvn命令部署)
4、输入tomcat账号、密码(admin)、访问IP:端口
构建
完成以上配置后,保存,回到Jenkins首页,点击项目列表最右方的构建按钮,开始构建
查看构建状态
点击左下角构建编号,下拉选择ConsoleOutput,即可查看构建状态
查看代码检测结果
构建完成后,下拉项目,选择sonarqube,可以看到代码检测结果
总结
无
未完待续
附:
实用插件
OS专用:Xcode integration
Android专用:Gradle plugin
Gitlab插件:GitLab Plugin 和 Gitlab Hook Plugin
Git插件: Git plugin
GitBuckit插件: GitBuckit plugin
签名证书管理插件: Credentials Plugin 和Keychains and Provisioning Profiles Management
FTP插件: Publish over FTP
脚本插件: Post-Build Script Plug-in
修改Build名称/描述(二维码): build-name-setter / description setter plugin
获取仓库提交的commit log: Git Changelog Plugin
自定义全局变量: Environment Injector Plugin
自定义邮件插件: Email Extension Plugin
获取当前登录用户信息: build-user-vars-plugin
显示代码测试覆盖率报表: Cobertura Plugin
来展示生成的单元测试报表,支持一切单测框架,如junit、nosetests等: Junit Plugin
其它: GIT plugin / SSH Credentials Plugin
本文参考资料:
https://www.liaoxuefeng.com/article/001463233913442cdb2d1bd1b1b42e3b0b29eb1ba736c5e000
https://www.zhihu.com/question/25385945
http://skyseraph.com/2016/07/18/Tools/Jenkins%20Gitlab%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90%E6%89%93%E5%8C%85%E5%B9%B3%E5%8F%B0%E6%90%AD%E5%BB%BA/
http://blog.csdn.net/liuyuehu/article/details/51532466
http://blog.csdn.net/wangmuming/article/details/22924815