OpenSearch/x-pack/plugin/ml/build.gradle
David Roberts 3f210e2620 [ML] Load data streams plugin for ML internal cluster tests (#63560)
Now that deprecation logs get indexed to a data stream, if we
do not load the data stream plugin in our tests and any test
generates a deprecation log message then millions of exceptions
get logged, slowing down the tests to the extent that they can
fail.

This change loads the data streams plugin during the ML internal
cluster tests.  (It should already be present in external cluster
tests.)

Fixes #63548
2020-10-12 17:46:50 +01:00

109 lines
3.3 KiB
Groovy

apply plugin: 'elasticsearch.esplugin'
apply plugin: 'elasticsearch.internal-cluster-test'
esplugin {
name 'x-pack-ml'
description 'Elasticsearch Expanded Pack Plugin - Machine Learning'
classname 'org.elasticsearch.xpack.ml.MachineLearning'
hasNativeController true
extendedPlugins = ['x-pack-core', 'lang-painless']
}
repositories {
ivy {
name "ml-cpp"
url System.getProperty('build.ml_cpp.repo', 'https://prelert-artifacts.s3.amazonaws.com')
metadataSources {
// no repository metadata, look directly for the artifact
artifact()
}
patternLayout {
artifact "maven/org/elasticsearch/ml/ml-cpp/[revision]/ml-cpp-[revision].[ext]"
}
}
}
configurations {
nativeBundle {
resolutionStrategy.dependencySubstitution {
if (findProject(':ml-cpp') != null) {
substitute module("org.elasticsearch.ml:ml-cpp") with project(":ml-cpp")
}
}
resolutionStrategy.cacheChangingModulesFor 2, 'hours'
}
}
bundlePlugin {
dependsOn configurations.nativeBundle
from {
project.zipTree(configurations.nativeBundle.singleFile)
}
// We don't ship the individual nativeBundle licenses - instead
// they get combined into the top level NOTICES file we ship
exclude 'platform/licenses/**'
}
dependencies {
compileOnly project(':modules:lang-painless:spi')
compileOnly project(path: xpackModule('core'), configuration: 'default')
testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts')
testImplementation project(path: xpackModule('ilm'), configuration: 'default')
testImplementation project(path: xpackModule('data-streams'), configuration: 'default')
// This should not be here
testImplementation project(path: xpackModule('security'), configuration: 'testArtifacts')
// ml deps
api project(':libs:elasticsearch-grok')
api "com.ibm.icu:icu4j:${versions.icu4j}"
api "net.sf.supercsv:super-csv:${versions.supercsv}"
nativeBundle("org.elasticsearch.ml:ml-cpp:${project.version}@zip") {
changing = true
}
testImplementation 'org.ini4j:ini4j:0.5.2'
}
configurations {
testArtifacts.extendsFrom testRuntime
testArtifacts.extendsFrom testImplementation
}
TaskProvider testJar = tasks.register("testJar", Jar) {
appendix 'test'
from sourceSets.test.output
}
artifacts {
// normal es plugins do not publish the jar but we need to since users need it for Transport Clients and extensions
archives tasks.named('jar')
testArtifacts testJar
}
tasks.register("extractNativeLicenses", Copy) {
dependsOn configurations.nativeBundle
into "${buildDir}"
from {
project.zipTree(configurations.nativeBundle.singleFile)
}
include 'platform/licenses/**'
}
project.afterEvaluate {
// Add an extra licenses directory to the combined notices
tasks.named('generateNotice').configure {
dependsOn "extractNativeLicenses"
licensesDir new File("${project.buildDir}/platform/licenses")
outputs.upToDateWhen {
extractNativeLicenses.didWork
}
}
}
def checkTask = tasks.named("check")
// add all sub-projects of the qa sub-project
gradle.projectsEvaluated {
project.subprojects
.find { it.path == project.path + ":qa" }
.subprojects
.findAll { it.path.startsWith(project.path + ":qa") }
.each { subProj -> checkTask.configure { dependsOn subProj.tasks.named("check") } }
}