以下是一个完整的GitLab CI配置,用于集成Sonar:
stages:
- build
- analysis
- test
variables:
SONAR_HOST_URL: "http://sonarqube.example.com:9000"
SONAR_LOGIN: "${SONAR_TOKEN}" # 使用环境变量SONAR_TOKEN来代替SONAR登录凭据
build:
stage: build
script:
- mvn clean package
analysis:
stage: analysis
image: sonarsource/sonar-scanner-cli:4.6.2
script:
- sonar-scanner -Dsonar.projectKey=my-project -Dsonar.sources=. -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_LOGIN
allow_failure: true #如果Sonar分析失败,则继续构建
test:
stage: test
script:
- mvn test
在上面的例子中,我们通过定义三个阶段:build,analysis和test来构建完整的CI流水线。
第一阶段build编译应用程序并生成可执行文件。 第二阶段analysis会使用Sonar Scanner分析代码质量并将结果上传到SonarQube服务器。 第三阶段test运行测试来验证应用程序是否正常工作。
在运行analysis阶段时,我们使用了Sonar Scanner的官方CLI Docker镜像,并传递必要的参数,例如Sonar项目密钥、源代码路径、SonarQube服务器URL和登录令牌。
最后,我们允许允许故障的优雅失败,如果Sonar分析阶段失败,则CI流水线仍会继续构建。
请注意,上面的例子仅提供了基本的配置示例,您可能需要根据自己的项目需求进行更改和调整。