@@ -43,6 +43,7 @@ class VagrantTestPlugin implements Plugin<Project> {
43
43
static List<String > UPGRADE_FROM_ARCHIVES = [' rpm' , ' deb' ]
44
44
45
45
private static final PACKAGING_CONFIGURATION = ' packaging'
46
+ private static final PACKAGING_TEST_CONFIGURATION = ' packagingTest'
46
47
private static final BATS = ' bats'
47
48
private static final String BATS_TEST_COMMAND = " cd \$ PACKAGING_ARCHIVES && sudo bats --tap \$ BATS_TESTS/*.$BATS "
48
49
private static final String PLATFORM_TEST_COMMAND = " rm -rf ~/elasticsearch && rsync -r /elasticsearch/ ~/elasticsearch && cd ~/elasticsearch && ./gradlew test integTest"
@@ -58,6 +59,7 @@ class VagrantTestPlugin implements Plugin<Project> {
58
59
59
60
// Creates custom configurations for Bats testing files (and associated scripts and archives)
60
61
createPackagingConfiguration(project)
62
+ project. configurations. create(PACKAGING_TEST_CONFIGURATION )
61
63
62
64
// Creates all the main Vagrant tasks
63
65
createVagrantTasks(project)
@@ -134,10 +136,12 @@ class VagrantTestPlugin implements Plugin<Project> {
134
136
}
135
137
136
138
private static void createCleanTask (Project project ) {
137
- project. tasks. create(' clean' , Delete . class) {
138
- description ' Clean the project build directory'
139
- group ' Build'
140
- delete project. buildDir
139
+ if (project. tasks. findByName(' clean' ) == null ) {
140
+ project. tasks. create(' clean' , Delete . class) {
141
+ description ' Clean the project build directory'
142
+ group ' Build'
143
+ delete project. buildDir
144
+ }
141
145
}
142
146
}
143
147
@@ -164,6 +168,12 @@ class VagrantTestPlugin implements Plugin<Project> {
164
168
from project. configurations[PACKAGING_CONFIGURATION ]
165
169
}
166
170
171
+ File testsDir = new File (packagingDir, ' tests' )
172
+ Copy copyPackagingTests = project. tasks. create(' copyPackagingTests' , Copy ) {
173
+ into testsDir
174
+ from project. configurations[PACKAGING_TEST_CONFIGURATION ]
175
+ }
176
+
167
177
Task createVersionFile = project. tasks. create(' createVersionFile' , FileContentsTask ) {
168
178
dependsOn copyPackagingArchives
169
179
file " ${ archivesDir} /version"
@@ -214,7 +224,7 @@ class VagrantTestPlugin implements Plugin<Project> {
214
224
215
225
Task vagrantSetUpTask = project. tasks. create(' setupPackagingTest' )
216
226
vagrantSetUpTask. dependsOn ' vagrantCheckVersion'
217
- vagrantSetUpTask. dependsOn copyPackagingArchives, createVersionFile, createUpgradeFromFile
227
+ vagrantSetUpTask. dependsOn copyPackagingArchives, copyPackagingTests, createVersionFile, createUpgradeFromFile
218
228
vagrantSetUpTask. dependsOn copyBatsTests, copyBatsUtils
219
229
}
220
230
@@ -373,10 +383,14 @@ class VagrantTestPlugin implements Plugin<Project> {
373
383
packagingTest. dependsOn(batsPackagingTest)
374
384
}
375
385
376
- // This task doesn't do anything yet. In the future it will execute a jar containing tests on the vm
377
- Task groovyPackagingTest = project. tasks. create(" vagrant${ boxTask} #groovyPackagingTest" )
378
- groovyPackagingTest. dependsOn(up)
379
- groovyPackagingTest. finalizedBy(halt)
386
+ Task groovyPackagingTest = project. tasks. create(" vagrant${ boxTask} #groovyPackagingTest" , VagrantCommandTask ) {
387
+ command ' ssh'
388
+ boxName box
389
+ environmentVars vagrantEnvVars
390
+ dependsOn up, setupPackagingTest
391
+ finalizedBy halt
392
+ args ' --command' , ' set -e; for jar in $PACKAGING_TESTS/*.jar; do java -jar $jar; done'
393
+ }
380
394
381
395
TaskExecutionAdapter groovyPackagingReproListener = createReproListener(project, groovyPackagingTest. path)
382
396
groovyPackagingTest. doFirst {
0 commit comments