您当前的位置: 首页 >  ar

庄小焱

暂无认证

  • 3浏览

    0关注

    801博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Devops——Sonarqube+github构建

庄小焱 发布时间:2021-12-30 20:21:54 ,浏览量:3

摘要

在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 - 三只松鼠 - 博客园

关注
打赏
1657692014
查看更多评论
立即登录/注册

微信扫码登录

0.1923s