在CircleCI上使用SonarQube扫描器

3
我正在使用Sonarqube和CircleCI进行代码质量扫描。然而,我不知道是否可以在CircleCI上启动一个Sonarqube服务器并使用它来运行扫描器。
以下是我的当前config.yaml:
version: 2.1

executors:
  scanner:
    docker:
      - image: openjdk:11

commands:
  check-code-quality:
    description: Check Code Quality
    parameters:
      sonar_server_url:
        type: string
        description: "URL of your SonarQube server. e.g.: http://my.sonarqube,server:9000"
        default: "$SONAR_SERVER"
      sonar_login:
        description: "Authentication key (sonar.login paramter) to access SonarQube and perform analysis"
        type: string
        default: "$SONAR_TOKEN"
      sonar_sources:
        description: "Where the files are located?"
        type: string
        default: "$SONAR_SOURCES"

    steps:
        - run:
            name: Install Sonarqube scanner
            command: |
                wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873.zip
                unzip sonar-scanner-cli-4.2.0.1873.zip

        - run:
            name: Run Sonarscanner
            command: |
                export SONAR_SCANNER_OPTS="-Xmx2048m"
                eval ./sonar-scanner-4.2.0.1873/bin/sonar-scanner \
                -Dsonar.projectKey=projectKey
                -Dsonar.host.url=<< parameters.sonar_server_url >> \
                -Dsonar.sources=<< parameters.sonar_sources >> \
                -Dsonar.login=<< parameters.sonar_login >>

jobs:
  check-code-job:
    executor: scanner
    steps:
      - check-code-quality

workflows:
  check-code-quality-flow:
    jobs:
      - check-code-job:
          context: lineclass

当作业正在执行时,会出现错误日志:

...
Caused by: java.lang.IllegalStateException: Fail to get bootstrap index from server
    at org.sonarsource.scanner.api.internal.BootstrapIndexDownloader.getIndex(BootstrapIndexDownloader.java:42)
    at org.sonarsource.scanner.api.internal.JarDownloader.getScannerEngineFiles(JarDownloader.java:58)
    at org.sonarsource.scanner.api.internal.JarDownloader.download(JarDownloader.java:53)
    at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.lambda$createLauncher$0(IsolatedLauncherFactory.java:76)
    ... 7 more
Caused by: java.net.ConnectException: Failed to connect to localhost/127.0.0.1:9000
    at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.R...

这表明Sonarqube服务器不存在。

如果您在CircleCI上运行sonar-scanner有经验,请帮忙。 谢谢。

1个回答

2

我将镜像更改为sonarqube:8.9-community并修复了sonar-scanner命令中缺少的\(在-Dsonar.projectKey的末尾),现在它可以正常工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接