默认jenkins、gitlab、sonar服务都搭建完成
jenkins
插件安装
在jenkins-系统管理-插件管理-可选插件搜索SonarQube Scanner for Jenkins安装,安装完成后重启jenkins
全局工具配置
在jenkins-系统管理-全局工具配置里配置SonarQube Scanner,选择自动安装
凭据配置
在jenkins-系统管理-凭据中配置sonar的key,类型选择secret text,secret就填在sonar中创建的key
系统配置
在jenkins-系统管理-系统配置里配置SonarQube servers,其中Server authentication token为上面在jenkins添加的全局key,Server URL为sonar平台地址
job创建
1.源码管理正常配置,和项目构建一样配置,检测的是master分支,可以自己修改
2.构建触发器,选择第四个,后面的url复制一下,在后面配置gitlab会用到,选择push events(这里说一下,应该是选择Accepted Merge Request Events,但是目前sonar不支持,所以还是在mr合并后检测master)
3.再点进高级选项,下面会生成一个secret token,,复制一下,在后面配置gitlab会用到
4.在构建选择Execute SonarQube Scanner,然后在Analysis properties中填入以下信息
# 项目标识符,在给定的 SonarQube 中必须是唯一的,这里就填入在sonar上创建的项目名称,不然在检查完毕后会再次新建一个
sonar.projectKey=demo
# 项目名称,这是 SonarQube 中显示的名称,这里和projectKey一样就行
sonar.projectName=demo
# 项目版本号
sonar.projectVersion=1.0
# 以下定义可在项目根目录新建 sonar-project.properties 文件, SonarQube 会默认读取该文件,
# 指定工程源文件所在的目录, "./"可表示根目录,在 Windows 系统使用时注意用"/"代替"\"
sonar.sources=./src
至此jenkins配置完成
gitlab
webhook配置
在gitlab项目下的settings中找到integrations settings(需要权限),将刚刚在jenkins的job中拿到的url和token配置进去,选择push event,和jenkins保持一致
测试
手动构建一下jenkins,看sonar server是否工作正常
在项目下提一个mr,合并后,查看jenkins任务是否自动构建