Skip to content

Commit ef48eb3

Browse files
committed
Define lifecycle tasks for running different types of packaging tests (#54134)
1 parent b46be0f commit ef48eb3

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

buildSrc/src/main/java/org/elasticsearch/gradle/test/DistroTestPlugin.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,12 @@ public void apply(Project project) {
106106
TaskProvider<Copy> copyUpgradeTask = configureCopyUpgradeTask(project, upgradeVersion, upgradeDir);
107107
TaskProvider<Copy> copyPluginsTask = configureCopyPluginsTask(project, pluginsDir);
108108

109+
Map<ElasticsearchDistribution.Type, TaskProvider<?>> lifecyleTasks = lifecyleTasks(project, "distructiveDistroTest");
109110
TaskProvider<Task> destructiveDistroTest = project.getTasks().register("destructiveDistroTest");
110111
for (ElasticsearchDistribution distribution : distributions) {
111112
TaskProvider<?> destructiveTask = configureDistroTest(project, distribution, dockerSupport);
112113
destructiveDistroTest.configure(t -> t.dependsOn(destructiveTask));
114+
lifecyleTasks.get(distribution.getType()).configure(t -> t.dependsOn(destructiveTask));
113115
}
114116
Map<String, TaskProvider<?>> batsTests = new HashMap<>();
115117
batsTests.put("bats oss", configureBatsTest(project, "oss", distributionsDir, copyDistributionsTask));
@@ -127,6 +129,7 @@ public void apply(Project project) {
127129
List<Object> vmDependencies = new ArrayList<>(configureVM(vmProject));
128130
vmDependencies.add(project.getConfigurations().getByName("testRuntimeClasspath"));
129131

132+
Map<ElasticsearchDistribution.Type, TaskProvider<?>> vmLifecyleTasks = lifecyleTasks(vmProject, "distroTest");
130133
TaskProvider<Task> distroTest = vmProject.getTasks().register("distroTest");
131134
for (ElasticsearchDistribution distribution : distributions) {
132135
String destructiveTaskName = destructiveDistroTestTaskName(distribution);
@@ -141,6 +144,7 @@ public void apply(Project project) {
141144
);
142145
vmTask.configure(t -> t.dependsOn(distribution));
143146

147+
vmLifecyleTasks.get(distribution.getType()).configure(t -> t.dependsOn(vmTask));
144148
distroTest.configure(t -> {
145149
// Only VM sub-projects that are specifically opted-in to testing Docker should
146150
// have the Docker task added as a dependency. Although we control whether Docker
@@ -170,6 +174,17 @@ public void apply(Project project) {
170174
});
171175
}
172176

177+
private static Map<ElasticsearchDistribution.Type, TaskProvider<?>> lifecyleTasks(Project project, String taskPrefix) {
178+
Map<ElasticsearchDistribution.Type, TaskProvider<?>> lifecyleTasks = new HashMap<>();
179+
180+
lifecyleTasks.put(Type.DOCKER, project.getTasks().register(taskPrefix + ".docker"));
181+
lifecyleTasks.put(Type.ARCHIVE, project.getTasks().register(taskPrefix + ".archives"));
182+
lifecyleTasks.put(Type.DEB, project.getTasks().register(taskPrefix + ".packages"));
183+
lifecyleTasks.put(Type.RPM, lifecyleTasks.get(Type.DEB));
184+
185+
return lifecyleTasks;
186+
}
187+
173188
private static Jdk createJdk(
174189
NamedDomainObjectContainer<Jdk> jdksContainer,
175190
String name,

0 commit comments

Comments
 (0)