AWS CodeBuild と SonarCloud を連携させる機会があったので、その方法についての備忘録として残しておきます。
AWS CodeBuild の環境変数 SonarCloudAccessToken に SonarCloud のアクセストークンを保持しておきます。
SonarCloud のアクセストークンの発行は、SonarCloud のサイトで ユーザーアイコン > Settings > Personal access token から出来ます。
AWS CodeBuild で環境変数を保持しておくことにより、開発者が間違えてローカル環境で ./gradlew clean build sonarqube を打ってしまったとしても、ローカル環境には環境変数 SonarCloudAccessToken がないため失敗にできます。
下記ファイルが、実際の設定内容です。
[~] 部分は、適宜変更してください。
build.gradle
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 | buildscript {
    repositories {
      maven {
        url "http://repo1.maven.org/maven2/"
      }
      maven {
        url "https://plugins.gradle.org/m2/"
      }
      mavenLocal()
    }
    dependencies {
      classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.5"
    }
}
plugins {
  id "org.sonarqube" version "2.7.1"
}
apply plugin: 'java'
apply plugin: 'org.sonarqube'
apply plugin: 'jacoco'
sonarqube {
    properties {
        property "sonar.login", SonarCloudAccessToken
        property "sonar.host.url", "https://sonarcloud.io/"
        property "sonar.projectKey", [SonarCloudで解析する対象のプロジェクトキー]
        property "sonar.organization", [<あなたのorganization>]
        property "sonar.jacoco.reportPaths", "target/jacoco/test.exec"
    }
}
 | 
 
buildspec.yml
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
 | version: 0.2
phases:
  install:
    runtime-versions:
      java: corretto11
  build:
    commands:
      - chmod +x ./gradlew
      - ./gradlew build sonarqube -PSonarCloudAccessToken=${SonarCloudAccessToken}
 |