spring-boot/gradle/build-scan-user-data.gradle
Phillip Webb 0209cd3e4c Polish quote form used in Gradle scripts
Replace Gradle single quote strings with the double quote form
whenever possible. The change helps to being consistency to the
dependencies section where mostly single quotes were used, but
occasionally double quotes were required due to `${}` references.
2020-01-22 15:49:52 -08:00

81 lines
1.8 KiB
Groovy

tagOs()
tagJdk()
tagIde()
tagCiOrLocal()
addGitMetadata()
void tagOs() {
gradleEnterprise.buildScan.tag System.getProperty("os.name")
}
void tagJdk() {
gradleEnterprise.buildScan.tag "JDK-" + System.getProperty('java.specification.version')
}
void tagIde() {
if (System.getProperty("idea.version")) {
gradleEnterprise.buildScan.tag "IntelliJ IDEA"
} else if (System.getProperty("eclipse.buildId")) {
gradleEnterprise.buildScan.tag "Eclipse"
}
}
void tagCiOrLocal() {
gradleEnterprise.buildScan.tag(isCi() ? "CI" : "LOCAL")
}
void addGitMetadata() {
gradleEnterprise.buildScan.background {
def gitCommitId = execAndGetStdout("git", "rev-parse", "--short=8", "--verify", "HEAD")
def gitBranchName = getBranch()
def gitStatus = execAndGetStdout("git", "status", "--porcelain")
if(gitCommitId) {
def commitIdLabel = "Git Commit ID"
value commitIdLabel, gitCommitId
link "Git commit build scans", customValueSearchUrl([(commitIdLabel): gitCommitId])
}
if (gitBranchName) {
tag gitBranchName
value "Git branch", gitBranchName
}
if (gitStatus) {
tag "dirty"
value "Git status", gitStatus
}
}
}
boolean isCi() {
System.getenv("CI")
}
String getBranch() {
def branch = System.getenv("BRANCH")
if (branch) {
return branch
}
return execAndGetStdout("git", "rev-parse", "--abbrev-ref", "HEAD")
}
String execAndGetStdout(String... args) {
def stdout = new ByteArrayOutputStream()
exec {
commandLine(args)
standardOutput = stdout
}
return stdout.toString().trim()
}
String customValueSearchUrl(Map<String, String> search) {
def query = search.collect { name, value ->
"search.names=${encodeURL(name)}&search.values=${encodeURL(value)}"
}.join("&")
"${gradleEnterprise.buildScan.server}/scans?${query}"
}
String encodeURL(String url) {
URLEncoder.encode(url, "UTF-8")
}