SonarQube(sonar-scanner)+GitLab(gitlab-runner)实现提交代码自动扫描项目代码

news2024/10/6 1:42:58

安装gitlab-runner

插件挂载目录

mkdir -p /data/gitlab-runner/config
docker run -d --name gitlab-runner \
-v /data/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
--restart always \
--privileged=true \
gitlab/gitlab-runner

注册gitlab-runner

来到要扫描的项目下,设置- CI/CD
在这里插入图片描述
展开Runner,可以看见你的链接和token,点击复制

在这里插入图片描述
从Runner复制后,进入gitlab-runner容器

依次输入:地址(http://git.hkeasyspeed.com/)、token(DGmZzRF7dk1p1JPwcu8A )、描述(report)、标签(report)、执行方式(docker)、镜像(sonarsource/sonar-scanner-cli:latest)

[root@localhost ~]# docker exec -it gitlab-runner bash
root@c73a1e8ec484:/# gitlab-runner register
Runtime platform                                    arch=amd64 os=linux pid=294 revision=5316d4ac version=14.6.0
Running in system-mode.                            
                                                   
Enter the GitLab instance URL (for example, https://gitlab.com/):
http://git.hkeasyspeed.com/  
Enter the registration token:
DGmZzRF7dk1p1JPwcu8A  
Enter a description for the runner:
[c73a1e8ec484]: report
Enter tags for the runner (comma-separated):
report
Registering runner... succeeded                     runner=DGmZzRF7
Enter an executor: docker-ssh, shell, docker+machine, docker-ssh+machine, virtualbox, kubernetes, custom, docker, parallels, ssh:
docker
Enter the default Docker image (for example, ruby:2.6):
sonarsource/sonar-scanner-cli:latest
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 
root@c73a1e8ec484:/# exit
exit
[root@localhost ~]# 

退出,刷新Runner页面可以看见有个可用的Runner,标签叫report

在这里插入图片描述

添加环境变量

1.新增项目的时候,我们可以直接忽略第一步直接点击继续,我们跑的是docker不是maven扫描不用修改pom.xml文件

在这里插入图片描述
2.将token和url添加到gitlab项目变量里
在这里插入图片描述
设置- CI/CD - 变量 - 展开 - 添加变量

在这里插入图片描述
新增SONAR_TOKEN=SnarQube生成的令牌值,SONAR_HOST_URL=SonarQube地址
其实变量也可以不用新增,直接编写.gitlab-ci.yml的时候直接明文指定也行。

在这里插入图片描述

编辑.gitlab-ci.yml

点击左侧的CI/CD - 编辑器 ,默认是没有gitlab-ci的yml文件,我们点击新建
在这里插入图片描述
将默认生成修改以下
项目标识:-Dsonar.projectKey=easyspeed-module-report

# This file is a template, and might need editing before it works on your project.
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml

# This is a sample GitLab CI/CD configuration file that should run without any modifications.
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
# it uses echo commands to simulate the pipeline execution.
#
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
# Stages run in sequential order, but jobs within stages run in parallel.
#
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/README.html#stages

image:
  name: sonarsource/sonar-scanner-cli:latest
variables:
  SONAR_TOKEN: "${SONAR_TOKEN}"  
  SONAR_HOST_URL: "${SONAR_HOST_URL}"
  GIT_DEPTH: 0
sonarqube-check:
  stage: build
  script:
    - sonar-scanner -X -Dsonar.qualitygate.wait=true -Dsonar.java.binaries=. -Dsonar.projectKey=easyspeed-module-report 
  allow_failure: true
  only: 
    - merge_requests
    - master
    - test
    - pre
  tags:
    - report	#要和注册的gitlab-runner 标签一致

保存后会立马跑一遍流水线

在这里插入图片描述
至此每次提交项目都会触发流水线,自动扫描项目代码
在这里插入图片描述
完成,撒哟啦啦!!!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/680315.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据库必备知识】索引和事务

数据库系列文章 1. 零基础带你快速上手SQL语言2. 玩转表及其数据3. 上手表设计 4. 索引和事务 目录 📖前言 1. 索引 1.1 索引的概念 1.2 索引的作用 1.3 索引的使用场景 1.4 索引的使用 1.5 索引背后的数据结构(B树) 2. 事务 2.1 事务的概念 2.2 数据库使…

Centos7安装Python3.10

Centos7用yum安装的Python3版本比较旧,想要安装最新版本的Python3需要自己动手编译安装。下面就来讲讲安装步骤,主要分为这么几个步骤,依赖→下载→编译→配置。另外所有操作都是在root用户下进行。 依赖 编译Python源码需要依赖许多库&…

spring.cache 随笔0 集成设计

0. 最近感觉 “困意驱动睡眠” 也有他的意义 spring cache学习(一):spring cache注解简单了解 Java Caching JSR107介绍 同样,本章也会简单的集成redisson作为缓存服务 1. 从我们自己写的javaConfig开始吧 Configuration // 这…

Java——文件操作

文件操作 1、File类概述2、File类的常用APIFile类的判断文件类型、获取文件信息功能创建文件、删除文件功能遍历文件夹文件搜索 3、字符集常见字符集字符集的编码、解码操作 4、IO流分类5、字节流的使用文件字节输入流文件字节输出流文件拷贝 6、字符类的使用文件字符输入流文件…

“前端已死”

一、一些迹象 逛社区,偶然看到了这张图片: 嗯……我眉头一皱,久久不语,心想,有这么夸张吗,假的吧? 突然想到,最近我在社区发了个前端招聘的信息,结果简历漫天纷飞&…

【C++】auto_ptr为何被唾弃?以及其他智能指针的学习

搭配异常可以让异常的代码更简洁 文章目录 智能指针 内存泄漏的危害 1.auto_ptr(非常不建议使用) 2.unique_ptr 3.shared_ptr 4.weak_ptr总结 智能指针 C中为什么会需要智能指针呢?下面我们看一下样例: int div() {int a, b;cin >&g…

图表制作办公首选--实用图表工具Echars

实用图表工具Echars 前言 由于工作的需要,在写材料的时候需要使用到柱状图、饼状图、折线图等等展示数据,可以使用PPT等办公软件构建出图表,在这里可以使用更加方便、更加美观的工具Echars。 Echars图表使用 Echars官网:Ecahr…

二叉平衡树之红黑树

目录 1.概念 2.性质 3.节点的定义 4.插入 1.按照二叉搜索树规则插入结点 2.调整颜色 1.uncle存在且为红色 2.uncle不存在或者为黑 cur为 3.根节点改为黑色 5.验证 6.比较 7.应用 1.概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存…

【计算机网络】计算机网络期末自测题(一)

目录 一、 填空题:(20 分,每空 1 分) 二、 选择题(20 分,每小题 1 分) 三、不定项选择题 (10 分,每小题 1 分) 四、名词解释 (15 分,每小题 3 分) 五、简答题 (25 分) 得分 一、 填空题:(20 分&#xff…

【C++】STL——string类详解

🚀 作者简介:一名在后端领域学习,并渴望能够学有所成的追梦人。 🚁 个人主页:不 良 🔥 系列专栏:🛸C 🛹Linux 📕 学习格言:博观而约取&#xff0…

混合策略改进的哈里斯鹰优化算法-附代码

混合策略改进的哈里斯鹰优化算法 文章目录 混合策略改进的哈里斯鹰优化算法1.哈里斯鹰优化算法2.改进哈里斯鹰优化算法2.1 初始化种群的改进2.1.1 初始种群多样化2.1.2 初始种群精英化 2.2 逃逸能量递减机制的改进2.4 拉普拉斯交叉算子策略 3.实验结果4.参考文献5.Matlab代码6.…

6.17 、Java初级:锁

1 同步锁 1.1 前言 经过前面多线程编程的学习,我们遇到了线程安全的相关问题,比如多线程售票情景下的超卖/重卖现象. 上节笔记点这里-进程与线程笔记 我们如何判断程序有没有可能出现线程安全问题,主要有以下三个条件: 在多线程程序中 有共享数据 多条语句操作共享数据 多…

移动web-渐变

渐变 使用场景:使用background-image属性实现渐变背景效果 代码:background-image: linear-gradient(参数1,参数2,参数3...); (默认的方位从上到下) 参数1 方位名词: to right, to left 角度deg: 直接写度数 参数2 颜色1 参数3 颜色2... 注意&#xff…

看完这篇 教你玩转渗透测试靶机vulnhub—Corrosion:1

Vulnhub靶机Corrosion:1渗透测试详解 Vulnhub靶机介绍:Vulnhub靶机下载:Vulnhub靶机安装:Vulnhub靶机漏洞详解:①:信息收集: Vulnhub靶机渗透总结: Vulnhub靶机介绍: vulnhub是个提…

canvas详解01-绘制基本图形

既然我们已经设置了 canvas 环境,我们可以深入了解如何在 canvas 上绘制。到本文的最后,你将学会如何绘制矩形,三角形,直线,圆弧和曲线,变得熟悉这些基本的形状。绘制物体到 Canvas 前,需掌握路…

软件工程——第5章总体设计知识点整理

本专栏是博主个人笔记,主要目的是利用碎片化的时间来记忆软工知识点,特此声明! 文章目录 1.总体设计的基本目的? 2.总体设计的任务? 3.总体设计过程由哪两个阶段组成? 4.总体设计的步骤? 5…

【Linux从入门到精通】进程地址空间(虚拟地址 vs 物理地址)

本篇文章会围绕三个问题(什么是地址空间?地址空间是如何设计的?为什么要有地址空间?)进行展开讲述。其中主要是了解虚拟地址和物理地址的区别。希望本篇文章会对你有所帮助。 文章目录 一、什么是地址空间?…

《机器学习公式推导与代码实现》chapter6-k近邻算法

《机器学习公式推导与代码实现》学习笔记,记录一下自己的学习过程,详细的内容请大家购买作者的书籍查阅。 k近邻算法 k近邻(k-nearest neighbor, k-NN)算法是一种经典的分类算法。k近邻算法根据新的输入实例的k个最近邻实例的类别来决定其分类。所以k近…

rust abc(1): 最小环境搭建

文章目录 1. 目的2. 命令集合3. 安装或更新 rust3.1 命令3.2 运行结果 4. 包管理工具 Cargo5. 创建 Rust 的 Hello World 程序: 单个文件6. 创建 Rust 的 Hello World 工程: 基于 Cargo6.1 cargo new 创建工程6.2 cargo run6.3 完整输出6.4 解释 7. IDE/编辑器8. Re…

Jetson安装Anaconda(miniforge3)

1 miniforge3 miniforge集成了Anaconda的核心工具:conda。conda是一个包和环境管理工具。因此, miniforge里面的conda和Anaconda里面的conda完全一样;你能用Anaconda做的安装、升级、删除包等功能,miniforge都能做;你…