iOS自动化集成
1.安装环境
1.1 环境说明
- 搭建机器:Mac mini
- 开发工具:XCode v8.2.1
- Mac系统: OS X 10.12.5
- jenkins版:2.46
- sonarqube : 6.2
- fastlane : 2.9.1
- oclint : 0.11.1
1.2 安装jenkins
通过brew安装
brew install jenkins
Mac上开机自启动方法
# 设置开机自启动配置文件
ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents
# 载入配置文件
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
# jenkins服务的启动|停止
brew services [start|stop] jenkins
1.2 安装fastlane
# rubychina的 fastlane 上面的落后好几个版本,所以这里我们先把rubygems的源加回来
gem source -a https://rubygems.org/
gem install fastlane
1.3 安装oclint
# 不走下面的命令直接install oclint的话, 下载的版本不是最新版, 文档将不能正常生成
brew tap oclint/formulae
brew install oclint
直接写在可能很慢,也可以通过迅雷等工具下载完以后,讲zip包放到brew cache 目录
# 查看brew cache目录
brew --cache
# 拷贝oclint-0.11.1.tar.gz 到目录以后,执行可以马上安装
brew install oclint
1.4 安装sonar
网上很多通过源码zip安装的方法,这里我们也通过brew 来安装
1.4.1 通过brew安装
brew install sonarqube
1.4.2 设置数据库用户
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;
1.4.3 修改 /conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
# 这里原来是localhost的,无法连接,改成127.0.0.1以后连接成功
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
1.4.5 sonar汉化
# 下载 sonar-l10n-zh-plugin-1.14.jar
# 下载后放到 /usr/local/Cellar/sonarqube/6.2/libexec/extensions/plugins 路径下,重启sonar即可
brew services restart sonarqube
1.4.6 Objective-C插件下载
# 下载 sonar-objective-c-plugin-0.5.0-SNAPSHOT.jar
# 放到 /usr/local/Cellar/sonarqube/6.2/libexec/extensions/plugins 路径下,重启sonar即可
brew services restart sonarqube
1.4.7 安装 sonar-scanner
网上的教程里面只有 sonar-runner,但是官方那边只有sonar-scanner 可以下载,看了配置信息,应该是2.4版本以后改名了。
# 注意:sonar-scanner 需要 jre 1.8以上版本,也可以直接下载jdk
brew install sonar-scanner
配置sonar-scanner
# 配置信息文件, 配置和sonarqube相同即可
/usr/local/Cellar/sonar-scanner/2.8/libexec/conf/sonar-scanner.properties
参考
- 基于Sonar的iOS代码质量检测系统-(WillkYang) : http://www.jianshu.com/p/6b61783b9a38
- [实践]iOS Sonar集成流程详解-(advancer_chen) : https://my.oschina.net/ChenTF/blog/708646