摘要
4.1.3 点击
4.3.5 填写项目标识和项目名
在CICD的流程中对于的代码检查是必要的,在工程中Sonarqube是必不可少的工作,在构建CICD的系统架构中Sonarqube能帮助我们实现相关的代码检查工作。接下来我介绍的Sonarqube的构建个使用,同时与github jeknins等工具一起构建CICD系统。
一、Sonarqube的简介sonarQube 是一款开源代码检测工具。本篇介绍通过 docker 来安装。大概的一个运作流程是这样的,先通过 sonar-scanner 插件扫描代码,把数据存储到数据库,sonarQube 读取数据库,将数据库展现在 web 平台。
# 拉取两个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
是一个自动代码审查工具,用于检测代码中的错误、漏洞和不规范的编码风格。本文实现利用Github
的Action
实现在代码提交时自动使用SonarQube
审查代码。
Developer settings

New Github App
按钮创建Github App
SonarQube
中配置的ALM集成
,配置Github
Github APP
生成的信息创建Github配置

Github Action
以便在提交代码时自动分析并将分析结果传到SonarQube
.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
的地址
进入SonarQube
的项目页面,可以看到该项目已经出现
SonarQube篇-安装配置sonarqube+gitlab+jenkins+ldap集群_鬼刺-CSDN博客_sonarqube配置gitlab
SonarQube——如何搭建SonarQube完整版 - 。思索 - 博客园
docker 安装 sonarQube - 三只松鼠 - 博客园