基于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里面。
1.png
- 新增構建腳本
#!/bin/bash -il
source /Users/zhanghuan/.bash_profile
export LC_ALL="en_US.UTF-8"
# sonar-scanner
sh run-sonar.sh
2.png
直接構建,成功后打開sonarqube查看結果即可
3.png