基于iOS的JenkinsSonar掃描

基于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安裝

方式一:鏈接

OCLint

方式二:命令

brew tap oclint/formulae
brew install oclint

4. xcpretty安裝

方式一:鏈接

xcpretty

方式二:命令

sudo gem install -n /usr/local/bin xcpretty

5. SonarQube安裝

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使用文檔及下載

  • 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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。