使用 Sonar+Epona+Gitlab+dingding 搭建代码静态检查系统
Posted Data-Mining
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用 Sonar+Epona+Gitlab+dingding 搭建代码静态检查系统相关的知识,希望对你有一定的参考价值。
目录
前言
随着研发团队的日益壮大,代码质量管理变得越来越有必要。本文只是介绍一种代码静态检测系统搭建的建议和思路,大家也可以理解成是一种设计方案。
正文
一、准备工作
1. 拥有(新建)一个gitlab的代码仓库。
2. 项目具备管理员权限,普通开发者角色(developer)没有配置权限。
【如果你没有如下图所示的“设置”选项,就不用瞎折腾了。我就因为没有这个选项,自己瞎鼓捣了好久,而相关负责的同学还在瞎指挥,我从一开始就怀疑是不是自己缺少权限,太悲哀了。】
3.拥有sonar和epona的账号。
二、操作步骤
1. 在 Sonar 中创建项目,定义并填写项目的名称(display name)和 Project Key,注意:你可以不记得项目名称,但是一定要记得Project Key,具体如下图所示:
2. 在钉钉中建立代码静态检测结果通知群组(一般至少要拉三个人才能建群),建好群后添加机器人,群组设置-职能群助手-机器人管理-添加机器人,如下图所示:
然后,选择“自定义”选项,图标如下图所示:
填写机器人名称,同时勾选“加签”,具体操作如下图所示:
注意:勾选“加签”时,一定要记得保存密钥,之后就“消失”了。点击“完成”按钮后,会出现钉钉hook的通知地址,也记得保存下来。
3. 在 epona 中创建钉钉机器人,具体操作和注意事项如下图所示:
4. 在gitlab项目中添加CICD变量,其中,BOT_ALIAS 和钉钉机器人的唯一标识保持一致,PROJECT_KEY 和sonar中定义的项目 Project Key 保持一致,具体如下图所示:
5. 填写 .gitlab-ci.yml 配置文件,可以参考下面的示例内容:
stages:
- code_quality
- code_report
SONAR 分析:
tags:
- docker
stage: code_quality
image: harbor.***.com/sonar-scanner/sonar-scanner-cli:latest
variables:
SONAR_USER_HOME: "$CI_PROJECT_DIR/.sonar" # Defines the location of the analysis task cache
GIT_DEPTH: "0" # Tells git to fetch all the branches of the project, required by the analysis task
cache:
key: "$CI_JOB_NAME"
paths:
- .sonar/cache
script:
- sonar-scanner
-Dsonar.verbose=false
-Dsonar.projectKey=electron
-Dsonar.projectName=electron
-Dsonar.projectVersion=lozen/test
-Dsonar.sources=.
-Dsonar.qualitygate.wait=true
#-Dsonar.exclusions=src/third_party/**/*,src/build/**/*,src/buildtools/**/*,src/tools/**/*,src/test/**/*,src/testing/**/*
#-Dsonar.test.exclusions=src/test/**/*,src/testing/**/*
allow_failure: true
only:
- lozen/test
- dev
- release
- master
SONAR 报告:
tags:
- docker
stage: code_report
image: $DOCKER_REGISTRY/cicd/sonarnotify:latest
script:
- sonarnotify
only:
- lozen/test
- dev
- release
- master
三、模块关系图谱
整个系统包括四个大的模块,其中,模块之间的关系图谱如下图所示。这个系统的工作原理就是研发人员提交新的代码到Gitlab仓库后,Gitlab仓库会把代码push到Sonar代码静态检测模块,然后由Sonar完成检测后,回调通知检测结果给钉钉机器人,钉钉机器人再把结果展示在钉钉群组里。
四、工具
整体系统搭建肯定不是从0开始的,肯定会依赖很多开源的工具方案,主要工具如下:
1. SonarQube - Code Quality and Code Security
网址:Code Quality and Code Security | SonarQube
2. sonar-scanner-cli - Run code analysis on SonarQube
网址:GitHub - SonarSource/sonar-scanner-cli-docker: Docker image for SonarScanner CLI
3. sonarqube-community-branch-plugin - A plugin for SonarQube to allow branch analysis
作者简介:😄大家好,我是 Data-Mining(liuzhen007),是一位典型的音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解。同时也是 CSDN 博客专家(博客之星)、华为云享专家(共创编辑、十佳博主)、51CTO社区编辑、InfoQ 签约作者,欢迎关注我分享更多干货!😄
以上是关于使用 Sonar+Epona+Gitlab+dingding 搭建代码静态检查系统的主要内容,如果未能解决你的问题,请参考以下文章
使用 Sonar+Epona+Gitlab+dingding 搭建代码静态检查系统
devops===》Jenkins(pipeline)+gitlab+sonar代码扫描漏洞扫描
devops===》Jenkins(pipeline)+gitlab+sonar代码扫描漏洞扫描