新建项目&基本配置
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" ]; thenecho "质量门禁结果不通过"exit 1 # 退出并返回构建失败状态
fi
# 如果质量门禁结果通过,则输出成功信息
echo "质量门禁结果通过"
进行构建
可以手动,或模拟代码提交操作
查看控制台输出
如报错-bash: jq:未找到命令sudo yum install jq安装即可