Gets ES plugin to download the cpp code if not built locally

Original commit: elastic/x-pack-elasticsearch@64cc4aeb38
This commit is contained in:
Colin Goodheart-Smithe 2016-12-01 15:48:51 +00:00
parent 19c1424984
commit 8dc12d0f88
2 changed files with 30 additions and 15 deletions

View File

@ -4,6 +4,7 @@ import org.gradle.internal.os.OperatingSystem
import org.gradle.plugins.ide.eclipse.model.SourceFolder import org.gradle.plugins.ide.eclipse.model.SourceFolder
import org.elasticsearch.gradle.precommit.LicenseHeadersTask import org.elasticsearch.gradle.precommit.LicenseHeadersTask
import org.elasticsearch.gradle.VersionProperties import org.elasticsearch.gradle.VersionProperties
import org.elastic.gradle.UploadS3Task
import java.nio.file.Files import java.nio.file.Files
import java.nio.file.Paths import java.nio.file.Paths
@ -32,6 +33,12 @@ project.ext.nasExtension = '_' + (System.getenv()['GIT_COMMIT'] ?: 'xxxxxxxxxxxx
(isWindows ? "_windows-x86_64.zip" : (isMacOsX ? "_darwin-x86_64.zip" : (isWindows ? "_windows-x86_64.zip" : (isMacOsX ? "_darwin-x86_64.zip" :
(isLinux ? "_linux-x86_64.zip" : "_sunos-x86_64.zip"))) (isLinux ? "_linux-x86_64.zip" : "_sunos-x86_64.zip")))
String uploadEnabledStr = properties.get('upload', 'false')
if (['true', 'false'].contains(uploadEnabledStr) == false) {
throw new GradleException("upload must be true or false, got ${uploadEnabledStr}")
}
project.ext.uploadEnabled = uploadEnabledStr == 'true'
// C++ build can be explicitly enabled or disabled, or if neither is chosen // C++ build can be explicitly enabled or disabled, or if neither is chosen
// it will be enabled if the necessary 3rd party dependencies are present // it will be enabled if the necessary 3rd party dependencies are present
String cppEnabledStr = properties.get('xpack.cpp.build', 'auto') String cppEnabledStr = properties.get('xpack.cpp.build', 'auto')
@ -88,7 +95,7 @@ subprojects {
} }
task bundlePack(type: Zip) { task bundlePack(type: Zip) {
onlyIf { project('kibana').bundlePlugin.enabled && project('cpp').strip.enabled } onlyIf { project('kibana').bundlePlugin.enabled }
dependsOn 'elasticsearch:bundlePlugin' dependsOn 'elasticsearch:bundlePlugin'
dependsOn 'kibana:bundlePlugin' dependsOn 'kibana:bundlePlugin'
from { zipTree(project('elasticsearch').bundlePlugin.outputs.files.singleFile) } from { zipTree(project('elasticsearch').bundlePlugin.outputs.files.singleFile) }
@ -103,7 +110,12 @@ task assemble(dependsOn: bundlePack) {
description = 'Assembles the outputs of this project.' description = 'Assembles the outputs of this project.'
} }
task build(dependsOn: assemble) { task test(dependsOn: [':elasticsearch:test', ':cpp:test', ':kibana:test']) {
group = 'Build'
description = 'Assembles and tests this project.'
}
task build(dependsOn: [assemble, test]) {
group = 'Build' group = 'Build'
description = 'Assembles and tests this project.' description = 'Assembles and tests this project.'
} }
@ -126,16 +138,21 @@ class SimpleCopy extends DefaultTask {
} }
// norelease: by the time we move to x-plugins we cannot use the Prelert NAS at all // norelease: by the time we move to x-plugins we cannot use the Prelert NAS at all
task uploadPack(type: SimpleCopy) { task uploadPack(type: SimpleCopy, dependsOn: [build]) {
// This doesn't use a Copy task because that builds hashes for a huge number of files on the NAS // This doesn't use a Copy task because that builds hashes for a huge number of files on the NAS
String zipFile = "prelert-${elasticsearchVersion}.zip" String zipFile = "prelert-${elasticsearchVersion}.zip"
sourceFile = "${projectDir}/build/distributions/" + zipFile sourceFile = "${projectDir}/build/distributions/" + zipFile
destFile = project.ext.nasDirectory + zipFile.replace('.zip', project.ext.nasExtension) destFile = project.ext.nasDirectory + zipFile.replace('.zip', project.ext.nasExtension)
} }
uploadPack.dependsOn build task uploadPackToS3(type: UploadS3Task, dependsOn: [build]) {
enabled project.uploadEnabled
description = 'upload pack zip to S3 Bucket'
bucket 'prelert-artifacts'
upload bundlePack.outputs.files.singleFile, "maven/org.elasticsearch.prelert/prelert/${elasticsearchVersion}/${bundlePack.outputs.files.singleFile.name}"
}
task deploy(dependsOn: uploadPack) { task deploy(dependsOn: [uploadPackToS3, ':cpp:upload']) {
} }

View File

@ -46,22 +46,20 @@ task downloadCppDist(type: DownloadS3Task) {
bucket 'prelert-artifacts' bucket 'prelert-artifacts'
destDir file("${buildDir}/cppDist") destDir file("${buildDir}/cppDist")
flatten true flatten true
download "maven/${project.group}/prelert_cpp_darwin-x86_64/${elasticsearchVersion}/prelert_cpp_darwin-x86_64.zip" download "maven/${project.group}/prelert-cpp/${elasticsearchVersion}/prelert-cpp-darwin-x86_64-${elasticsearchVersion}.zip"
outputs.file(file("${buildDir}/cppDist/prelert-cpp-darwin-x86_64-${elasticsearchVersion}.zip"))
} }
bundlePlugin { bundlePlugin {
if (project.cppEnabled) { if (project.cppEnabled) {
from { zipTree(project(':cpp').buildZip.outputs.files.singleFile) } from { zipTree(project(':cpp').buildZip.outputs.files.singleFile) }
dependsOn ':cpp:buildZip'
} else { } else {
from("${rootDir}/cppdistribution") { print "READ ME ::::::::: " + downloadCppDist.outputs + "\n"
into '.' for (file in downloadCppDist.outputs.files) {
// Don't copy Windows import libraries print "READ ME ::::::::: " + file + "\n"
exclude "**/*.lib" from{ zipTree(file) }
// Don't copy the test support library
exclude "**/libPreTest.*"
includeEmptyDirs = false
} }
dependsOn 'downloadCppDist'
} }
} }
bundlePlugin.dependsOn([':cpp:buildZip', 'downloadCppDist'])