Skip to content

Commit 36d018c

Browse files
committed
Convert RunTask to use testclusers, remove ClusterFormationTasks (#47572)
* Convert RunTask to use testclusers, remove ClusterFormationTasks This PR adds a new RunTask and a way for it to start a testclusters cluster out of band and block on it to replace the old RunTask that used ClusterFormationTasks. With this we can now remove ClusterFormationTasks.
1 parent d33dbf8 commit 36d018c

File tree

20 files changed

+179
-1730
lines changed

20 files changed

+179
-1730
lines changed

build.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,17 @@
1717
* under the License.
1818
*/
1919

20+
2021
import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin
2122
import org.apache.tools.ant.taskdefs.condition.Os
2223
import org.elasticsearch.gradle.BuildPlugin
23-
import org.elasticsearch.gradle.Version
2424
import org.elasticsearch.gradle.BwcVersions
25+
import org.elasticsearch.gradle.Version
2526
import org.elasticsearch.gradle.VersionProperties
2627
import org.elasticsearch.gradle.plugin.PluginBuildPlugin
27-
import org.elasticsearch.gradle.tool.Boilerplate
28-
import org.gradle.util.GradleVersion
29-
import org.gradle.util.DistributionLocator
3028
import org.gradle.plugins.ide.eclipse.model.SourceFolder
29+
import org.gradle.util.DistributionLocator
30+
import org.gradle.util.GradleVersion
3131

3232
import static org.elasticsearch.gradle.tool.Boilerplate.maybeConfigure
3333

@@ -452,7 +452,7 @@ class Run extends DefaultTask {
452452
description = "Enable debugging configuration, to allow attaching a debugger to elasticsearch."
453453
)
454454
public void setDebug(boolean enabled) {
455-
project.project(':distribution').run.clusterConfig.debug = enabled
455+
project.project(':distribution').run.debug = enabled
456456
}
457457
}
458458
task run(type: Run) {

buildSrc/src/main/groovy/org/elasticsearch/gradle/plugin/PluginBuildPlugin.groovy

Lines changed: 23 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import org.elasticsearch.gradle.NoticeTask
2525
import org.elasticsearch.gradle.Version
2626
import org.elasticsearch.gradle.VersionProperties
2727
import org.elasticsearch.gradle.test.RestIntegTestTask
28-
import org.elasticsearch.gradle.test.RunTask
28+
import org.elasticsearch.gradle.testclusters.RunTask
2929
import org.elasticsearch.gradle.testclusters.TestClustersPlugin
3030
import org.elasticsearch.gradle.tool.ClasspathUtils
3131
import org.gradle.api.InvalidUserDataException
@@ -68,35 +68,28 @@ class PluginBuildPlugin implements Plugin<Project> {
6868
project.archivesBaseName = name
6969
project.description = extension1.description
7070
configurePublishing(project, extension1)
71-
if (project.plugins.hasPlugin(TestClustersPlugin.class) == false) {
72-
project.integTestCluster.dependsOn(project.tasks.bundlePlugin)
73-
if (isModule) {
74-
project.integTestCluster.module(project)
75-
} else {
76-
project.integTestCluster.plugin(project.path)
77-
}
71+
72+
project.tasks.integTest.dependsOn(project.tasks.bundlePlugin)
73+
if (isModule) {
74+
project.testClusters.integTest.module(
75+
project.file(project.tasks.bundlePlugin.archiveFile)
76+
)
7877
} else {
79-
project.tasks.integTest.dependsOn(project.tasks.bundlePlugin)
80-
if (isModule) {
78+
project.testClusters.integTest.plugin(
79+
project.file(project.tasks.bundlePlugin.archiveFile)
80+
)
81+
}
82+
83+
project.extensions.getByType(PluginPropertiesExtension).extendedPlugins.each { pluginName ->
84+
// Auto add dependent modules to the test cluster
85+
if (project.findProject(":modules:${pluginName}") != null) {
86+
project.integTest.dependsOn(project.project(":modules:${pluginName}").tasks.bundlePlugin)
8187
project.testClusters.integTest.module(
82-
project.file(project.tasks.bundlePlugin.archiveFile)
83-
)
84-
} else {
85-
project.testClusters.integTest.plugin(
86-
project.file(project.tasks.bundlePlugin.archiveFile)
88+
project.file(project.project(":modules:${pluginName}").tasks.bundlePlugin.archiveFile)
8789
)
8890
}
89-
90-
project.extensions.getByType(PluginPropertiesExtension).extendedPlugins.each { pluginName ->
91-
// Auto add dependent modules to the test cluster
92-
if (project.findProject(":modules:${pluginName}") != null) {
93-
project.integTest.dependsOn(project.project(":modules:${pluginName}").tasks.bundlePlugin)
94-
project.testClusters.integTest.module(
95-
project.file(project.project(":modules:${pluginName}").tasks.bundlePlugin.archiveFile)
96-
)
97-
}
98-
}
9991
}
92+
10093
if (extension1.name == null) {
10194
throw new InvalidUserDataException('name is a required setting for esplugin')
10295
}
@@ -120,14 +113,6 @@ class PluginBuildPlugin implements Plugin<Project> {
120113
]
121114
buildProperties.expand(properties)
122115
buildProperties.inputs.properties(properties)
123-
project.tasks.run.dependsOn(project.tasks.bundlePlugin)
124-
if (isModule) {
125-
project.tasks.run.clusterConfig.distribution = System.getProperty(
126-
'run.distribution', isXPackModule ? 'default' : 'oss'
127-
)
128-
} else {
129-
project.tasks.run.clusterConfig.plugin(project.path)
130-
}
131116
if (isModule == false || isXPackModule) {
132117
addNoticeGeneration(project, extension1)
133118
}
@@ -148,7 +133,11 @@ class PluginBuildPlugin implements Plugin<Project> {
148133
createIntegTestTask(project)
149134
createBundleTasks(project, extension)
150135
project.configurations.getByName('default').extendsFrom(project.configurations.getByName('runtime'))
151-
project.tasks.create('run', RunTask) // allow running ES with this plugin in the foreground of a build
136+
// allow running ES with this plugin in the foreground of a build
137+
project.tasks.register('run', RunTask) {
138+
dependsOn(project.tasks.bundlePlugin)
139+
useCluster project.testClusters.integTest
140+
}
152141
}
153142

154143
private void configurePublishing(Project project, PluginPropertiesExtension extension) {
@@ -195,10 +184,6 @@ class PluginBuildPlugin implements Plugin<Project> {
195184
private static void createIntegTestTask(Project project) {
196185
RestIntegTestTask integTest = project.tasks.create('integTest', RestIntegTestTask.class)
197186
integTest.mustRunAfter('precommit', 'test')
198-
if (project.plugins.hasPlugin(TestClustersPlugin.class) == false) {
199-
// only if not using test clusters
200-
project.integTestCluster.distribution = System.getProperty('tests.distribution', 'integ-test-zip')
201-
}
202187
project.check.dependsOn(integTest)
203188
}
204189

buildSrc/src/main/groovy/org/elasticsearch/gradle/test/ClusterConfiguration.groovy

Lines changed: 0 additions & 267 deletions
This file was deleted.

0 commit comments

Comments
 (0)