@@ -43,6 +43,7 @@ class VagrantTestPlugin implements Plugin<Project> {
4343 static List<String > UPGRADE_FROM_ARCHIVES = [' rpm' , ' deb' ]
4444
4545 private static final PACKAGING_CONFIGURATION = ' packaging'
46+ private static final PACKAGING_TEST_CONFIGURATION = ' packagingTest'
4647 private static final BATS = ' bats'
4748 private static final String BATS_TEST_COMMAND = " cd \$ PACKAGING_ARCHIVES && sudo bats --tap \$ BATS_TESTS/*.$BATS "
4849 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> {
5859
5960 // Creates custom configurations for Bats testing files (and associated scripts and archives)
6061 createPackagingConfiguration(project)
62+ project. configurations. create(PACKAGING_TEST_CONFIGURATION )
6163
6264 // Creates all the main Vagrant tasks
6365 createVagrantTasks(project)
@@ -134,10 +136,12 @@ class VagrantTestPlugin implements Plugin<Project> {
134136 }
135137
136138 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+ }
141145 }
142146 }
143147
@@ -164,6 +168,12 @@ class VagrantTestPlugin implements Plugin<Project> {
164168 from project. configurations[PACKAGING_CONFIGURATION ]
165169 }
166170
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+
167177 Task createVersionFile = project. tasks. create(' createVersionFile' , FileContentsTask ) {
168178 dependsOn copyPackagingArchives
169179 file " ${ archivesDir} /version"
@@ -214,7 +224,7 @@ class VagrantTestPlugin implements Plugin<Project> {
214224
215225 Task vagrantSetUpTask = project. tasks. create(' setupPackagingTest' )
216226 vagrantSetUpTask. dependsOn ' vagrantCheckVersion'
217- vagrantSetUpTask. dependsOn copyPackagingArchives, createVersionFile, createUpgradeFromFile
227+ vagrantSetUpTask. dependsOn copyPackagingArchives, copyPackagingTests, createVersionFile, createUpgradeFromFile
218228 vagrantSetUpTask. dependsOn copyBatsTests, copyBatsUtils
219229 }
220230
@@ -373,10 +383,14 @@ class VagrantTestPlugin implements Plugin<Project> {
373383 packagingTest. dependsOn(batsPackagingTest)
374384 }
375385
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+ }
380394
381395 TaskExecutionAdapter groovyPackagingReproListener = createReproListener(project, groovyPackagingTest. path)
382396 groovyPackagingTest. doFirst {
0 commit comments