Jenkins持续集成平台
作者:胡小根
邮箱:[email protected]
1 概念
Jenkins可选配置参数相当多。基本可以归为这么几类:
- 构建触发配置:例如配置gitlab提交代码触发构建,或者每天、每周定时触发构建
- 构建工具配置:例如配置jdk/maven/gradle等
- 构建后配置:例如配置发送邮件、自动开jira bug等
Jenkins的外挂工具,都是通过插件机制来解决的,常见插件如下:
- iOS专用: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
2 初始化安装配置
略
项目使用
2.1 新增项目
2.1.1 源码管理
2.1.2 构建触发器
常用的两种触发构建:
- 触发远程构建
以GitLab为例,GitLab提交代码,触发编译
- Poll SCM
Poll SCM的格式为crontab的时间格式:
* * * * *
分 时 日 月 星期
分:0-59
时:0-23
日:1-31
月:1-12
星期:0-7(0和7指的都是星期天)
上图的意思为:每天晚上00:00编译
2.1.3 构建环境
2.1.4 构建
常见的构建包括:
- 执行Gradle/Maven编译
- 执行bash脚本
- 执行SonarQube Scan
SonarQube 配置
在需要使用SonarQube Scanner的项目中,增加文件sonar-project.properties,参考示例如下:
# Required metadata/必要字段
sonar.projectKey=zjk_oa_android:master
sonar.projectName=张家口OA-Android
sonar.projectVersion=1.0
# 设置为当前路径
sonar.sources=.
# 设置待检查项目的语言类型
sonar.language=java
# Encoding of the source files
sonar.sourceEncoding=UTF-8
sonar.java.binaries=.
2.1.5 构建后操作
常用的构建后操作:
- 开Jira问题
- 发邮件
- 自动部署及发布编译完产品
2.2 执行构建
查看构建日志
3 示例
3.1 Android持续集成
3.1.1 配置Android SDK(毫末科技公司的环境已经配置好)
- 下载sdk-tools-linux
- 命令行安装build tools: cd tools && ./android update sdk -u -a -t build-tools-26.0.2
- 配置ANDROID_HOME
配置截图如下:
完整操作流程如下:
3.2 前端持续集成
3.3 SpringMVC持续集成
类似Android
4 FAQ
4.1 如何查看构建过程
- 打开Console Output查看日志