Devops——Sonarqube+github+jenkins构建

在CICD的流程中对于的代码检查是必要的,在工程中Sonarqube是必不可少的工作,构建CICD的系统能帮助我们实现相关的代码检查工作。接下来我介绍的Sonarqube的构建个使用,同时与github jeknins等工具一起构建CICD系统。
原文:https://blog.csdn.net/weixin_41605937/article/details/122244691
https://blog.csdn.net/qq_35550345/article/details/103586647

一、Sonarqube的简介

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

sonarQube

二、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
image.png

三、SonarQube+Github配置

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

3.1 创建并安装Github APP

3.1.1 进去github设置页面

image.png

3.1.2 点击Developer settings

image.png

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

image.png

3.1.4 填写信息并设置权限

image.png

image.png

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

https://blog.csdn.net/weixin_41605937/article/details/122244691
3.1.6 生成私钥并导入
3.2 配置SonarQube
3.2.1 在SonarQube中配置的ALM集成,配置Github
3.2.2 根据刚才创建Github APP生成的信息创建Github配置
3.2.3 创建SonarQube token
3.3.4 使用手工模式创建
3.3.5 填写项目标识和项目名
3.3.6 记录生成的token, 之后要用
3.4 编写Github Action
3.4.1 创建Github Action以便在提交代码时自动分析并将分析结果传到SonarQube
3.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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容