|
@@ -0,0 +1,43 @@
|
|
|
+import nebula.plugin.info.scm.ScmInfoExtension
|
|
|
+
|
|
|
+buildScan {
|
|
|
+ def jenkinsUrl = System.getenv('JENKINS_URL') ? new URL(System.getenv('JENKINS_URL')) : null
|
|
|
+
|
|
|
+ // 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'
|
|
|
+ }
|
|
|
+
|
|
|
+ // Jenkins-specific build scan metadata
|
|
|
+ if (jenkinsUrl) {
|
|
|
+ tag 'CI'
|
|
|
+ tag System.getenv('JOB_NAME')
|
|
|
+ link 'Jenkins Build', System.getenv('BUILD_URL')
|
|
|
+ System.getenv('NODE_LABELS').split(' ').each {
|
|
|
+ value 'Jenkins Worker Label', it
|
|
|
+ }
|
|
|
+
|
|
|
+ // Capture changes included in this CI build except for pull request builds
|
|
|
+ if (System.getenv('GIT_COMMIT') && System.getenv('ROOT_BUILD_CAUSE_GHPRBCAUSE') == null) {
|
|
|
+ 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'
|
|
|
+ }
|
|
|
+
|
|
|
+ // Add SCM information
|
|
|
+ def scmInfo = project.extensions.findByType(ScmInfoExtension)
|
|
|
+ if (scmInfo && scmInfo.change && scmInfo.branch) {
|
|
|
+ value 'Git Commit ID', scmInfo.change
|
|
|
+ // Don't tag the branch if we are in a detached head state
|
|
|
+ if (scmInfo.branch ==~ /[0-9a-f]{5,40}/ == false) {
|
|
|
+ value 'Git Branch', scmInfo.branch
|
|
|
+ tag scmInfo.branch
|
|
|
+ }
|
|
|
+ link 'Source', "https://github.com/elastic/elasticsearch/commit/${scmInfo.change}"
|
|
|
+ }
|
|
|
+}
|