Jenkins持续集成平台

官网:https://haomo-tech.com

作者:毫末科技

邮箱:hxg@haomo-studio.com

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提交代码,触发编译

GitLab触发构建

  • Poll SCM

Poll SCM的格式为crontab的时间格式:

*    *    *    *    *
分    时    日    月    星期

分:0-59
时:0-23
日:1-31
月:1-12
星期:0-7(0和7指的都是星期天)

Poll SCM

上图的意思为:每天晚上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查看日志

5 参考

results matching ""

    No results matching ""