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}
|