基于iOS的JenkinsSonar扫描

作者: 圣艾修 | 来源:发表于2020-12-01 17:09 被阅读0次

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

相关文章

网友评论

    本文标题:基于iOS的JenkinsSonar扫描

    本文链接:https://www.haomeiwen.com/subject/uzbswktx.html