小知识,大挑战!本文正在参与「程序员必备小知识」创作活动
本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。
SonarQube
是一个自动代码审查工具,用于检测代码中的错误、漏洞和不规范的编码风格。本文实现利用Github
的Action
实现在代码提交时自动使用SonarQube
审查代码。
创建并安装Github APP
-
进去github设置页面
-
点击
Developer settings
-
点击
New Github App
按钮创建Github App
-
填写信息并设置权限
出现此页面表示创建成功
生成客户端密钥
生成私钥并导入
安装
配置SonarQube
在SonarQube
中配置配置Github
在SonarQube
中配置的ALM集成
,配置Github
根据刚才创建Github APP
生成的信息创建Github配置
创建SonarQube token
-
点击新建项目
-
使用手工模式创建
-
填写项目标识和项目名
-
输入字符点击创建
-
记录生成的token, 之后要用
编写Github Action
创建Github Action
以便在提交代码时自动分析并将分析结果传到SonarQube
在.github/workflows/
目录下创建build.yml
文件
在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
此项目使用Maven构建
创建项目变量,这个环境变量会在上图中配置的Action
中用到
创建变量SONAR_TOKEN
,值为上面在SonarQube
生成的token
创建变量SONAR_HOST_URL
,值为上面在SonarQube
的地址
提交代码触发Action
提交代码时会出现配置的Action
,分析代码并分析结果传到SonarQube
中
进入SonarQube
的项目页面,可以看到该项目已经出现