diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/DistroTestPlugin.java b/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/DistroTestPlugin.java index 2f254b30466a3..12f972c7edf31 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/DistroTestPlugin.java +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/DistroTestPlugin.java @@ -59,6 +59,7 @@ import java.util.Map; import java.util.Random; import java.util.stream.Collectors; +import java.util.stream.Stream; import static org.elasticsearch.gradle.vagrant.VagrantMachine.convertLinuxPath; import static org.elasticsearch.gradle.vagrant.VagrantMachine.convertWindowsPath; @@ -187,6 +188,12 @@ private static List configureVM(Project project) { vagrant.setBox(box); vagrant.vmEnv("SYSTEM_JAVA_HOME", convertPath(project, vagrant, systemJdk, "", "")); vagrant.vmEnv("PATH", convertPath(project, vagrant, gradleJdk, "/bin:$PATH", "\\bin;$Env:PATH")); + // pass these along to get correct build scans + if (System.getenv("JENKINS_URL") != null) { + Stream.of("JOB_NAME", "JENKINS_URL", "BUILD_NUMBER", "BUILD_URL").forEach(name -> + vagrant.vmEnv(name, System.getenv(name)) + ); + } vagrant.setIsWindowsVM(isWindows(project)); return Arrays.asList(systemJdk, gradleJdk); diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/test/GradleDistroTestTask.java b/buildSrc/src/main/java/org/elasticsearch/gradle/test/GradleDistroTestTask.java index cfb960e4e36b0..8671162fa7c7a 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/test/GradleDistroTestTask.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/test/GradleDistroTestTask.java @@ -80,6 +80,7 @@ private List getScript(boolean isWindows) { line.append(" --project-cache-dir "); line.append(isWindows ? convertWindowsPath(getProject(), cacheDir) : convertLinuxPath(getProject(), cacheDir)); line.append(" -S"); + line.append(" --parallel"); line.append(" -D'org.gradle.logging.level'=" + getProject().getGradle().getStartParameter().getLogLevel()); if (testClass != null) { line.append(" --tests="); diff --git a/gradle/build-scan.gradle b/gradle/build-scan.gradle index 09e9e950db49b..2cee60c381988 100644 --- a/gradle/build-scan.gradle +++ b/gradle/build-scan.gradle @@ -3,38 +3,34 @@ import org.elasticsearch.gradle.OS buildScan { URL jenkinsUrl = System.getenv('JENKINS_URL') ? new URL(System.getenv('JENKINS_URL')) : null String buildNumber = System.getenv('BUILD_NUMBER') + String buildUrl = System.getenv('BUILD_URL') String jobName = System.getenv('JOB_NAME') tag OS.current().name() + if (jobName) { + value 'Job name', jobName + } + if(buildNumber) { + value 'Job number', buildNumber + } - // Accept Gradle ToS when project property org.elasticsearch.acceptScanTOS=true or this is an Elastic CI build - if (jenkinsUrl?.host?.endsWith('elastic.co') || Boolean.valueOf(project.findProperty('org.elasticsearch.acceptScanTOS') ?: "false")) { - termsOfServiceUrl = 'https://gradle.com/terms-of-service' - termsOfServiceAgree = 'yes' + if (jenkinsUrl?.host?.endsWith('elastic.co')) { + publishAlways() + buildScan.server = 'https://gradle-enterprise.elastic.co' } // Jenkins-specific build scan metadata if (jenkinsUrl) { tag 'CI' - tag System.getenv('JOB_NAME') - link 'Jenkins Build', System.getenv('BUILD_URL') - link 'Additional Logs', - "https://console.cloud.google.com/storage/elasticsearch-ci-artifacts/jobs/${jobName}/build/${buildNumber}.tar.bz2" - System.getenv('NODE_LABELS').split(' ').each { + tag jobName + link 'Jenkins Build', buildUrl + link 'GCP Upload', "https://console.cloud.google.com/storage/elasticsearch-ci-artifacts/jobs/${jobName}/build/${buildNumber}.tar.bz2" + System.getenv().getOrDefault('NODE_LABELS', '').split(' ').each { value 'Jenkins Worker Label', it } - def isPrBuild = System.getenv('ROOT_BUILD_CAUSE_GHPRBCAUSE') != null - - // Capture changes included in this CI build except for pull request builds - if (System.getenv('GIT_COMMIT') && !isPrBuild) { - background { - def changes = "git diff --name-only ${System.getenv('GIT_PREVIOUS_COMMIT')}..${System.getenv('GIT_COMMIT')}".execute().text.trim() - value 'Git Changes', changes - } - } - // Add SCM information + def isPrBuild = System.getenv('ROOT_BUILD_CAUSE_GHPRBCAUSE') != null if (isPrBuild) { value 'Git Commit ID', System.getenv('ghprbActualCommit') value 'Git Branch', System.getenv('ghprbTargetBranch') @@ -44,11 +40,19 @@ buildScan { link 'Source', "https://github.com/elastic/elasticsearch/tree/${System.getenv('ghprbActualCommit')}" link 'Pull Request', System.getenv('ghprbPullLink') } else { - def branch = System.getenv('GIT_BRANCH').split('/').last() - value 'Git Commit ID', System.getenv('GIT_COMMIT') - value 'Git Branch', branch - tag branch - link 'Source', "https://github.com/elastic/elasticsearch/tree/${System.getenv('GIT_COMMIT')}" + if (System.getenv('GIT_BRANCH')) { + def branch = System.getenv('GIT_BRANCH').split('/').last() + value 'Git Branch', branch + tag branch + } + if (System.getenv('GIT_COMMIT')) { + value 'Git Commit ID', System.getenv('GIT_COMMIT') + link 'Source', "https://github.com/elastic/elasticsearch/tree/${System.getenv('GIT_COMMIT')}" + background { + def changes = "git diff --name-only ${System.getenv('GIT_PREVIOUS_COMMIT')}..${System.getenv('GIT_COMMIT')}".execute().text.trim() + value 'Git Changes', changes + } + } } } else { tag 'LOCAL'