mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-05 20:48:22 +00:00
8c53555b28
The current rest backcompat tests, which run against a mixed cluster of 5.x and 6.0 nodes, depend on snapshot builds of 5.x. However, this has the potential for inconsistency that results in CI failures, and happens quite often, whenever some backcompat logic is added to 5.x, but the bwc test on master fails because the 5.x code has not yet been published as a snapshot. This change creates a git clone of the 5.x branch, builds the zip distribution, and ties that into gradle substitutions for the 5.x version.
120 lines
3.6 KiB
Groovy
120 lines
3.6 KiB
Groovy
String dirName = rootProject.projectDir.name
|
|
rootProject.name = dirName
|
|
|
|
List projects = [
|
|
'build-tools',
|
|
'rest-api-spec',
|
|
'core',
|
|
'docs',
|
|
'client:rest',
|
|
'client:rest-high-level',
|
|
'client:sniffer',
|
|
'client:transport',
|
|
'client:test',
|
|
'client:client-benchmark-noop-api-plugin',
|
|
'client:benchmark',
|
|
'benchmarks',
|
|
'distribution:integ-test-zip',
|
|
'distribution:bwc-zip',
|
|
'distribution:zip',
|
|
'distribution:tar',
|
|
'distribution:deb',
|
|
'distribution:rpm',
|
|
'distribution:tools:java-version-checker',
|
|
'test:framework',
|
|
'test:fixtures:example-fixture',
|
|
'test:fixtures:hdfs-fixture',
|
|
'test:logger-usage',
|
|
'modules:aggs-matrix-stats',
|
|
'modules:ingest-common',
|
|
'modules:lang-expression',
|
|
'modules:lang-mustache',
|
|
'modules:lang-painless',
|
|
'modules:transport-netty4',
|
|
'modules:reindex',
|
|
'modules:percolator',
|
|
'modules:repository-url',
|
|
'plugins:analysis-icu',
|
|
'plugins:analysis-kuromoji',
|
|
'plugins:analysis-phonetic',
|
|
'plugins:analysis-smartcn',
|
|
'plugins:analysis-stempel',
|
|
'plugins:analysis-ukrainian',
|
|
'plugins:discovery-azure-classic',
|
|
'plugins:discovery-ec2',
|
|
'plugins:discovery-file',
|
|
'plugins:discovery-gce',
|
|
'plugins:ingest-geoip',
|
|
'plugins:ingest-attachment',
|
|
'plugins:ingest-user-agent',
|
|
'plugins:mapper-murmur3',
|
|
'plugins:mapper-size',
|
|
'plugins:repository-azure',
|
|
'plugins:repository-gcs',
|
|
'plugins:repository-hdfs',
|
|
'plugins:repository-s3',
|
|
'plugins:jvm-example',
|
|
'plugins:store-smb',
|
|
'qa:backwards-5.0',
|
|
'qa:evil-tests',
|
|
'qa:no-bootstrap-tests',
|
|
'qa:rolling-upgrade',
|
|
'qa:multi-cluster-search',
|
|
'qa:smoke-test-client',
|
|
'qa:smoke-test-http',
|
|
'qa:smoke-test-ingest-with-all-dependencies',
|
|
'qa:smoke-test-ingest-disabled',
|
|
'qa:smoke-test-multinode',
|
|
'qa:smoke-test-plugins',
|
|
'qa:smoke-test-reindex-with-painless',
|
|
'qa:smoke-test-tribe-node',
|
|
'qa:vagrant',
|
|
]
|
|
|
|
boolean isEclipse = System.getProperty("eclipse.launcher") != null || gradle.startParameter.taskNames.contains('eclipse') || gradle.startParameter.taskNames.contains('cleanEclipse')
|
|
if (isEclipse) {
|
|
// eclipse cannot handle an intermediate dependency between main and test, so we must create separate projects
|
|
// for core-src and core-tests
|
|
projects << 'core-tests'
|
|
}
|
|
|
|
include projects.toArray(new String[0])
|
|
|
|
project(':build-tools').projectDir = new File(rootProject.projectDir, 'buildSrc')
|
|
|
|
if (isEclipse) {
|
|
project(":core").projectDir = new File(rootProject.projectDir, 'core/src/main')
|
|
project(":core").buildFileName = 'eclipse-build.gradle'
|
|
project(":core-tests").projectDir = new File(rootProject.projectDir, 'core/src/test')
|
|
project(":core-tests").buildFileName = 'eclipse-build.gradle'
|
|
}
|
|
|
|
/**
|
|
* Iterates over sub directories, looking for build.gradle, and adds a project if found
|
|
* for that dir with the given path prefix. Note that this requires each level
|
|
* of the dir hierarchy to have a build.gradle. Otherwise we would have to iterate
|
|
* all files/directories in the source tree to find all projects.
|
|
*/
|
|
void addSubProjects(String path, File dir) {
|
|
if (dir.isDirectory() == false) return;
|
|
if (dir.name == 'buildSrc') return;
|
|
if (new File(dir, 'build.gradle').exists() == false) return;
|
|
|
|
String projectName = "${path}:${dir.name}"
|
|
include projectName
|
|
if (path.isEmpty()) {
|
|
project(projectName).projectDir = dir
|
|
}
|
|
for (File subdir : dir.listFiles()) {
|
|
addSubProjects(projectName, subdir)
|
|
}
|
|
}
|
|
|
|
// look for extra plugins for elasticsearch
|
|
File extraProjects = new File(rootProject.projectDir.parentFile, "${dirName}-extra")
|
|
if (extraProjects.exists()) {
|
|
for (File extraProjectDir : extraProjects.listFiles()) {
|
|
addSubProjects('', extraProjectDir)
|
|
}
|
|
}
|