You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
1.8 KiB
80 lines
1.8 KiB
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') |
|
}
|
|
|