📜  在 gitlab 中创建后的 sonarqube 新项目 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:37:20.402000             🧑  作者: Mango

在 GitLab 中创建后的 SonarQube 新项目 - Shell/Bash

在 GitLab 中创建一个 SonarQube 新项目,需要完成一系列的操作,包括创建新项目、安装 SonarQube 插件、配置 SonarQube 配置文件、编写 build shell/batch 脚本等。此篇文章将讲解如何在 GitLab 中创建后的 SonarQube 新项目 - Shell/Bash,重点涵盖了在 shell/batch 脚本中如何进行 SonarQube 静态代码扫描及代码质量分析等。

1. 新建 GitLab 项目

首先,在 GitLab 中创建一个新项目,确保项目中有要进行 SonarQube 分析的代码仓库。你可以使用 Git 命令将项目代码 push 到你的新项目中,或者直接在 GitLab 的仓库中进行编辑和上传代码。

2. 安装 SonarQube 插件

在 GitLab 的项目管理页面,进入 Settings -> CI/CD -> Secret variables。在这个页面中添加一些必要的环境变量,如下:

variables:
  SONAR_URL: "http://sonarqube.example.com"
  SONAR_TOKEN: "abcdef0123456789"
  GITLAB_TOKEN: "abcdef0123456789"

其中 SONAR_URL 为你的 SonarQube 服务器地址, SONAR_TOKEN 为你的 SonarQube 访问令牌, GITLAB_TOKEN 为你的 GitLab 访问令牌。

在 .gitlab-ci.yml 文件中添加如下的 Jobs 代码段:

sonar-run:
  stage: test
  image: sonarsource/sonar-scanner-cli:latest
  script:
    - sonar-scanner \
        -Dsonar.host.url=$SONAR_URL \
        -Dsonar.login=$SONAR_TOKEN

这个 Jobs 将在项目中执行静态代码扫描,检测代码质量,并将报告发送到 SonarQube 服务器。

3. 配置 SonarQube 配置文件

sonar-project.properties 文件中添加以下代码:

sonar.projectKey=$CI_PROJECT_NAME
sonar.projectName=$CI_PROJECT_NAME
sonar.projectVersion=1.0
sonar.sources=.
sonar.language=java
sonar.sourceEncoding=UTF-8

这些配置将帮助 SonarQube 获知你的项目信息,并确保扫描的代码都被检查完成。

4. 编写 Build Shell/Batch 脚本

在项目根目录下创建一个 build.shbuild.bat 脚本,根据你的项目语言编写代码。下面是一个使用 Maven 构建的例子:

#!/usr/bin/env bash

set -euo pipefail

# install maven
type -p mvn &> /dev/null ||
    sudo apt-get update &&
    sudo apt-get install -y maven

# build project
mvn clean package

# run sonar-scanner
sonar-scanner \
    -Dsonar.host.url=$SONAR_URL \
    -Dsonar.login=$SONAR_TOKEN

这个例子将使用 Maven 构建项目。如果你的项目使用其他构建工具,你需要写对应的脚本语句。

5. 完成静态分析

最后,在 GitLab 的项目管理页面中,单击 Settings -> CI/CD -> Pipelines 进入 Pipeline 管理页面。在这个页面中,你可以看到 Pipeline 的运行状态以及 SonarQube 静态代码扫描的结果。你也可以在 SonarQube 服务器上查看更详细的扫描结果和代码质量评分。

结论

以上就是在 GitLab 中创建后的 SonarQube 新项目 - Shell/Bash 的详细操作步骤,这些操作将帮助你进行更有效和准确的代码分析和评估。如果你还没有尝试过代码质量评估,那么现在就开始吧!