jenkins+gitlab+sonar自由风格项目配置

发布于:2024-05-07 ⋅ 阅读:(29) ⋅ 点赞:(0)

新建项目&基本配置

 

 

 gitlab侧配置

 

sonar.projectKey=test_sonar
sonar.projectName=test_sonar
sonar.projectVersion=1.0
sonar.sources=.
sonar.exclusions=src/layout/**
sonar.sourceEncoding=UTF-8
sonar.nodejs.executable=/app/nodejs/node-v16.20.2-linux-x64/bin/node


配置分析
sonar.projectKey=test_sonar: 这是项目在 SonarQube 或 SonarCloud 中的唯一标识符。它用于区分不同的项目,并且在配置和报告中都会用到。

sonar.projectName=test_sonar: 项目的名称,用于在 SonarQube 或 SonarCloud 中显示。

sonar.projectVersion=1.0: 项目的版本号,用于在 SonarQube 或 SonarCloud 中标识不同的版本。

sonar.sources=.: 指定要分析的源代码目录。这里使用.表示当前目录,也就是指分析当前项目的所有源代码文件。

sonar.exclusions=src/layout/**: 指定需要排除的文件或目录。在这个例子中,src/layout/ 目录下的所有文件和子目录都会被排除在代码分析之外。

sonar.sourceEncoding=UTF-8: 指定源代码的编码格式为 UTF-8。这确保了分析器能够正确地解析源代码中的字符。

sonar.nodejs.executable=/app/nodejs/node-v16.20.2-linux-x64/bin/node: 如果项目是基于 Node.js 的,这个配置指定了 Node.js 可执行文件的路径。这是为了在代码分析中确保使用指定版本的 Node.js 运行分析器。

 根据质量门禁结果判断任务构建结果(后续可以根据父子job实现后续的操作)

# 获取SonarQube质量门禁结果,sonarqueb登录所用的name与password(权限足够)、url根据实际填写
sonarqube_status=$(curl -s -u name:password "http://172.xxxx:9000/api/qualitygates/project_status?projectKey=test_sonar" | jq -r '.projectStatus.status')

# 如果质量门禁结果不通过,则执行下一步操作
if [ "$sonarqube_status" != "OK" ]; then
    echo "质量门禁结果不通过"
    exit 1  # 退出并返回构建失败状态
fi
# 如果质量门禁结果通过,则输出成功信息
echo "质量门禁结果通过"

 进行构建

可以手动,或模拟代码提交操作

查看控制台输出

如报错-bash: jq:未找到命令

sudo yum install jq

安装即可

扫描结果查看