基于iOS的JenkinsSonar扫描
mac 安装软件 显示信任任何来源,终端执行:
sudo spctl --master-disable
前提条件:
设备:Mac且已安装Xcode,java jdk
1. homebrew安装
命令行输入:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
如果网络原因不能直接安装,可以试试下面操作:
打开网址:https://raw.githubusercontent.com/Homebrew/install/master/install
将页面存储为页面源码并修改文件后缀为rb,如:install.rd。
cd到该文件目录,执行
ruby install.rd
2. jenkisn安装
- 稳定版本
安装最新稳定版本: brew install jenkins-lts
安装指定稳定版本: brew install jenkins-lts@YOUR_VERSION
开启服务: brew services start jenkins-lts
重启服务: brew services restart jenkins-lts
更新到最新稳定版本: brew upgrade jenkins-lts
- 最新版本
安装最新版本: brew install jenkins
安装指定版本: brew install jenkins@YOUR_VERSION
开启服务: brew services start jenkins
重启服务: brew services restart jenkins
更新到最新版本: brew upgrade jenkins
3. OCLint安装
方式一:链接
方式二:命令
brew tap oclint/formulae
brew install oclint
4. xcpretty安装
方式一:链接
方式二:命令
sudo gem install -n /usr/local/bin xcpretty
5. SonarQube安装
6. OC,Swift语言支持插件下载
6. slather安装
gem install slather
7. Pip安装
pip是常用的python包管理工具,以python3为例
curl https://bootstrap.pypa.io/get-pip.py | python3
7. sonar-runner或者sonar-scanner安装
sonar-runner在2.4版本之后改名为sonar-scanner
- sonar-scanner配置(默认本地的sonarqube,要改的话需要以下步骤)
下载的文件夹下:conf-sonar-scanner.properties
sonar.host.url=http://指定ip:端口
8. 环境变量配置
open -e ~/.bash_profile
- 新增以下:
SONAR_SCANNER=/usr/local/sonar-scanner-4.5.0.2216
PATH=$SONAR_SCANNER/bin:$PATH
OCLINT=/usr/local/oclint-20.11
PATH=$OCLINT/bin:$PATH
XCPRETTY=/usr/local/xcpretty-0.3.0
PATH=$XCPRETTY/bin:$PATH
- 保存关闭,继续执行刷新命令
source ~/.bash_profile
- 测试是否成功
sonar-scanner
xcpretty
oclint --help
9. 项目配置
在.xcodeproj同级目录下,新增文件run-sonar.sh及sonar-project.properties
我的脚本改过,原版可以参考:
run-sonar.sh下载
sonar-project.properties内容
# 项目名
sonar.projectKey=必填
# sonarqube展示的工程名
sonar.projectName=必填
sonar.projectVersion=1.0
# 语言
sonar.language=objc
# 语言
sonar.objectivec.project=项目名.xcodeproj
sonar.objectivec.workspace=项目名.xcodeproj/project.xcworkspace
sonar.objectivec.appScheme=Scheme
sonar.objectivec.testScheme=测试Scheme
sonar.objectivec.simulator=platform=iOS Simulator,name=iPhone 8,OS=latest
sonar.sources=要扫描的文件目录
sonar.objectivec.excludedPathsFromCoverage=*Resources
sonar.objectivec.oclint.report=oclint.xml
# sonarqube地址
sonar.host.url=http://172.26.6.247:9000
# sonarqube账号
sonar.login=admin
# sonarqube密码
sonar.password=admin
# 自定义 排除扫描目录
sonar.objectivec.excludePath=-e Common -e Model
10. jenkins构建任务
- 配置代码仓库
- 配置凭证:
查看自己的私钥:
cat /Users/zhanghuan/.ssh/id_rsa
记得把自己的公钥放到git个人账户sshkey里面。
- 新增构建脚本
#!/bin/bash -il
source /Users/zhanghuan/.bash_profile
export LC_ALL="en_US.UTF-8"
# sonar-scanner
sh run-sonar.sh
直接构建,成功后打开sonarqube查看结果即可