Devops——Sonarqube+github构建

摘要

在CICD的流程中对于的代码检查是必要的,在工程中Sonarqube是必不可少的工作,在构建CICD的系统架构中Sonarqube能帮助我们实现相关的代码检查工作。接下来我介绍的Sonarqube的构建个使用,同时与github jeknins等工具一起构建CICD系统。

一、Sonarqube的简介

sonarQube 是一款开源代码检测工具。本篇介绍通过 docker 来安装。大概的一个运作流程是这样的,先通过 sonar-scanner 插件扫描代码,把数据存储到数据库,sonarQube 读取数据库,将数据库展现在 web 平台。

二、Sonarqube在doceker构建

# 拉取两个Docker镜像

docker pull sonarqube

docker pull postgres

# 运行数据库容器

docker run --name postgresql -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgres

# 运行sonarqube

docker run --name sonarqube --link postgresql -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgresql:5432/sonar -p 9000:9000 -d sonarqube

三、Sonarqube扫描代码配置

四、SonarQube+Github配置

SonarQube是一个自动代码审查工具,用于检测代码中的错误、漏洞和不规范的编码风格。本文实现利用GithubAction实现在代码提交时自动使用SonarQube审查代码。

4.1 创建并安装Github APP

4.1.1 进去github设置页面

4.1.2 点击Developer settings 

4.1.3 点击New Github App按钮创建Github App

4.1.4 填写信息并设置权限

4.1.5 创建成功并生成客户端密钥 

4.1.6 生成私钥并导入

4.2 配置SonarQube

4.2.1  在SonarQube中配置的ALM集成,配置Github

4.2.2 根据刚才创建Github APP生成的信息创建Github配置

4.2.3 创建SonarQube token

4.3.4 使用手工模式创建

4.3.5 填写项目标识和项目名

4.3.6 记录生成的token, 之后要用

4.4 编写Github Action

4.4.1 创建Github Action以便在提交代码时自动分析并将分析结果传到SonarQube

4.4.2 在.github/workflows/目录下创建build.yml文件

name: Build
on:
  push:
    branches:
      - main
  pull_request:
    types: [opened, synchronize, reopened]
jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0  # Shallow clones should be disabled for a better relevancy of analysis
      - name: Set up JDK 11   
        uses: actions/setup-java@v1
        with:
          java-version: 11      # 项目使用的jdk版本
      - name: Cache SonarQube packages
        uses: actions/cache@v1
        with:
          path: ~/.sonar/cache
          key: ${{ runner.os }}-sonar
          restore-keys: ${{ runner.os }}-sonar
      - name: Cache Maven packages
        uses: actions/cache@v1
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2
      - name: Build and analyze
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}  # Needed to get PR information, if any
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
          SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
        run: mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar

4.4.3 此项目使用Maven构建

创建项目变量,这个环境变量会在上图中配置的Action中用到

创建变量SONAR_TOKEN,值为上面在SonarQube生成的token

创建变量SONAR_HOST_URL,值为上面在SonarQube的地址

4.4.4 提交代码触发Action

进入SonarQube的项目页面,可以看到该项目已经出现

博文参考

SonarQube篇-安装配置sonarqube+gitlab+jenkins+ldap集群_鬼刺-CSDN博客_sonarqube配置gitlab

SonarQube——如何搭建SonarQube完整版 - 。思索 - 博客园

docker 安装 sonarQube - 三只松鼠 - 博客园

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

庄小焱

我将坚持分享更多知识

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值