SonarQube部署
如果你不知道SonarQube是做什么的,那么请参考下面链接(包括但不限于)进行学习:
仓库设置
部署SonarQube
--set persistence.enabled=true \
--set persistence.storageClass=nfs-provisioner \
--set postgresql.persistence.storageClass=nfs-provisioner \
--set ingress.enabled=true \
--set ingress.'hosts[0]'=sonarqube.example.choerodon.io \
--set plugins.'install[0]'=https://file.choerodon.com.cn/choerodon-install/sonarqube/sonar-auth-choerodonoauth-plugin-1.5.3.RELEASE.jar \
--create-namespace \
--namespace c7n-system
- 更多参数及含义请参考
- 此步骤用于之前已经安装过SonarQube,只需安装插件的情况(如已经执行过上一步可跳过此步骤)
- 进入SonarQube安装目录,下载https://file.choerodon.com.cn/choerodon-install/sonarqube/sonar-auth-choerodonoauth-plugin-1.5.3.RELEASE.jar 插件到\data\sonarqube\extensions\plugins目录
- 重启SoanrQube服务
验证部署
访问设置的SonarQube域名出现以下界面即部署成功
编写参数配置文件
sonarqube-client.yaml
部署服务
helm upgrade --install sonarqube-client c7n/mysql-client \
-f sonarqube-client.yaml \
--create-namespace \
--namespace c7n-system
- 使用管理员用户登录 SoanrQube
配置默认新建项目为
Private
, 进入Administration
->Projects
->Management
更改默认权限模板, 进入
Administration
->Security
->Permission Templates
,去掉sonar-users
用户组所有权限
- 使用管理员用户登录 SoanrQube
- 进入
Administration
->Configuration
-> - 更改
Enabled
为启用 更改
sonar url
为当前使用的SonarQube实际地址退出登录,测试使用choerodon登录,出现如下界面
Choerodon权限与SonarQube权限为lazy分配,对于用户登录后在SonarQube没有权限的应用服务,从Choerodon代码质量详情界面,跳转登录到SonarQube即可。
Choerodon应用关联SonarQube项目
Choerodon 应用关联 SonarQube 针对 maven 和非 maven 项目有不同的配置。
- 如果是 maven 项目可以在 .gitlab-ci.yml 文件 build 阶段添加
- >-
mvn --batch-mode verify sonar:sonar
-Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN
-Dsonar.gitlab.project_id=$CI_PROJECT_PATH
-Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA
-Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME
-Dsonar.analysis.serviceGroup=$GROUP_NAME
-Dsonar.projectKey=${GROUP_NAME}:${PROJECT_NAME}
其他项目可以使用 sonar-scanner,在 .gitlab-ci.yml 文件 build 阶段添加
sonar.projectKey=${GROUP_NAME}:${PROJECT_NAME}不可更改;否则,在查看代码质量时将获取不到对应数据
sonar.sources 指定扫描代码的路径
GROUP_NAME和PROJECT_NAME是devops-service内置的环境变量, GROUP_NAME=当前项目所在组织编码-当前项目编码,PROJECT_NAME=当前应用编码