测试开发技术网站
博客
设计
设计
开发
Python
测试
unittest
运维
Linux基础应用
CI/CD
CI/CD
数据库
数据库
云计算
云计算
云原生
云原生
爬虫
爬虫
数据分析
数据分析
人工智能
人工智能
登录
注册
SonarQube----SonarQube和Gitlab集成
收藏本文
作者:redrose2100 类别: 日期:2022-08-15 08:57:56 阅读:1793 次 消耗积分:0 分
[TOC] # 一、背景 ## 1.1 Gitlab 中对代码质量的支持 Gitlab 中是支持代码质量检查和扫描的,但是免费版不支持在CI流水线中查看报告,如下为Gitlab中对代码质量功能的支持情况 ![](http://blog.redrose2100.com/static/upload/20220815_062412.png) 因此,在实际使用中有必要将Gitlab和SonarQube集成 # 二、SonarQube和Gitlab的集成 ## 2.1 SonarQube 配置集成Gitlab (1) Gitlab 生成一个供 SonarQube使用的Token (1) 这里需要使用一个能访问 Gitlab上所有项目的账号,然后依次从【Preference】-【Access Token】,然后生成一个token,注意该token要给足权限,然后复制token,比如 kH3_tssbTYpZQDtMwgwo ![](http://blog.redrose2100.com/static/upload/20220815_064649.png) (2) 使用 admin 登录 SonarQube,然后依次点击【Administrator】-【DevOps Platform Integrations】-【Gitlab】,点击【Create Configuration】按钮,如下图 ![](http://blog.redrose2100.com/static/upload/20220815_065008.png) (3) 然后配置gitlab的名字,api地址,以及token,如下图 ![](http://blog.redrose2100.com/static/upload/20220815_065355.png) (4) 如下显示配置集成完成 ![](http://blog.redrose2100.com/static/upload/20220815_065459.png) ## 2.2 SonarQube 配置使用 Gitlab 账号登录 (1) 首先使用 Admin 账号或者具有 Admin 权限的账号登录 Gitlab,点击【Application】 ![](http://blog.redrose2100.com/static/upload/20220816_052715.png) (2) 创建应用, 其中名字自己定义,重定向 url 为 SonarQube的域名后加上 /oauth2/callback/gitlab,勾选 api 调用权限,如下图 ![](http://blog.redrose2100.com/static/upload/20220816_052934.png) (3) 创建完成后,如下图,将应用ID和 Secret 拷贝下来 ![](http://blog.redrose2100.com/static/upload/20220816_053217.png) (4) 使用admin账号登录SonarQube,切换到配置集成Gitlab的页面,如下图 ![](http://blog.redrose2100.com/static/upload/20220816_054640.png) (5) 如下图所示,首先启用使用Gitlab用户登录SonarQube平台的按钮,然后依次填写gitlab的url已经上面步骤3步骤下来的应用ID和secret ![](http://blog.redrose2100.com/static/upload/20220816_054748.png) (6) 配置完成后注销,然后就可以看到登录界面出现了通过Gitlab账号登录的途径,此时如果gitlab已经登录了,就可以通过gitlab账号登录,根据提示点击一下授权即可 ![](http://blog.redrose2100.com/static/upload/20220816_054949.png) ## 2.3 配置SonarQube 从Gitlab 导入项目 (1) 回到【Projects】标签,然后点击【From Gitlab】 ![](http://blog.redrose2100.com/static/upload/20220815_070421.png) (2) 此时需要继续输入从 Gitlab 获取到的 Access token ![](http://blog.redrose2100.com/static/upload/20220815_070650.png) (3) 然后选择一个项目(比如Java 项目),点击【setup】 ![](http://blog.redrose2100.com/static/upload/20220815_070917.png) ## 2.4 配置 Gitlab CI (1) 在 SonarQube上点击【Projects】,然后点击要配置的项目,再点击【with Gitlab CI】,如下: ![](http://blog.redrose2100.com/static/upload/20220815_094321.png) (2) 点击【Maven】,然后将如下内容拷贝到代码中的pom.xml中,然后继续 ![](http://blog.redrose2100.com/static/upload/20220815_094421.png) (3) 按照如下提示在 Gitlab 上的CI变量中设置变量 ![](http://blog.redrose2100.com/static/upload/20220815_094601.png) (4) 在 Gitlab上对应的项目中一次【Setting】-【CICD】-【Variable】,点击【Expand】展开 ![](http://blog.redrose2100.com/static/upload/20220815_094825.png) (5) 然后设置变量SONAR_TOKEN ![](http://blog.redrose2100.com/static/upload/20220815_095028.png) (6) 设置变量SONAR_HOST_URL ![](http://blog.redrose2100.com/static/upload/20220815_095204.png) (7) 然后参照如下配置在gitlab的代码仓的 .gitlab-ci.yml 文件中配置code-quality步骤 ![](http://blog.redrose2100.com/static/upload/20220815_095433.png) 比如这里配置如下: ```bash sonarqube-check: image: maven:3.6.3-jdk-11 stage: lint 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: - mvn verify sonar:sonar -Dsonar.projectKey=oepkgs_oepkgs-build_AYKgVlgM_sH5zM_3_Sbt -Dspring.redis.host=xx.xx.xx.xx -Dspring.redis.port=6379 -Dspring.redis.password=xxxxxx -Dspring.datasource.url=jdbc:mysql://xx.xx.xx.xx:3306/oepkgs-build-test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2b8&allowPublicKeyRetrieval=true allow_failure: true except: - tags # or the name of your main branch tags: - ossscms_docker_in_docker ```
始终坚持开源开放共享精神,同时感谢您的充电鼓励和支持!
版权所有,转载本站文章请注明出处:redrose2100, http://blog.redrose2100.com/article/353
上一篇:
SonarQube----使用 docker-compose 安装部署 SonarQube
下一篇:
Pytest----Pytest快速体验
搜索
个人成就
出版书籍
《Pytest企业级应用实战》
测试开发技术全栈公众号
测试开发技术全栈公众号
DevOps技术交流微信群
加微信邀请进群
常用网站链接
开源软件洞察
云原生技术栈全景图
Python语言官方文档
Golang官方文档
Docker官方文档
Jenkins中文用户手册
Scrapy官方文档
VUE官方文档
Harbor官方文档
openQA官方文档
云原生开源社区
开源中国
Kubernetes中文文档
Markdown语法官方教程
Kubernetes中文社区
Kubersphere官方文档
BootStrap中文网站
JavaScript中文网
NumPy官方文档
Pandas官方文档
GitLink确实开源网站
数据库排名网站
编程语言排名网站
SEO综合查询网站
数学加减法练习自动生成网站
Kickstart Generator
文章分类
最新文章
最多阅读
特别推荐
×
Close
登录
注册
找回密码
登录邮箱:
登录密码:
图片验证码:
注册邮箱:
注册密码:
邮箱验证码:
发送邮件
注册邮箱:
新的密码:
邮箱验证码:
发送邮件