|
@@ -51,6 +51,7 @@ class VagrantTestPlugin implements Plugin<Project> {
|
|
static List<String> UPGRADE_FROM_ARCHIVES = ['rpm', 'deb']
|
|
static List<String> UPGRADE_FROM_ARCHIVES = ['rpm', 'deb']
|
|
|
|
|
|
private static final PACKAGING_CONFIGURATION = 'packaging'
|
|
private static final PACKAGING_CONFIGURATION = 'packaging'
|
|
|
|
+ private static final PACKAGING_TEST_CONFIGURATION = 'packagingTest'
|
|
private static final BATS = 'bats'
|
|
private static final BATS = 'bats'
|
|
private static final String BATS_TEST_COMMAND ="cd \$PACKAGING_ARCHIVES && sudo bats --tap \$BATS_TESTS/*.$BATS"
|
|
private static final String BATS_TEST_COMMAND ="cd \$PACKAGING_ARCHIVES && sudo bats --tap \$BATS_TESTS/*.$BATS"
|
|
private static final String PLATFORM_TEST_COMMAND ="rm -rf ~/elasticsearch && rsync -r /elasticsearch/ ~/elasticsearch && cd ~/elasticsearch && ./gradlew test integTest"
|
|
private static final String PLATFORM_TEST_COMMAND ="rm -rf ~/elasticsearch && rsync -r /elasticsearch/ ~/elasticsearch && cd ~/elasticsearch && ./gradlew test integTest"
|
|
@@ -66,6 +67,7 @@ class VagrantTestPlugin implements Plugin<Project> {
|
|
|
|
|
|
// Creates custom configurations for Bats testing files (and associated scripts and archives)
|
|
// Creates custom configurations for Bats testing files (and associated scripts and archives)
|
|
createPackagingConfiguration(project)
|
|
createPackagingConfiguration(project)
|
|
|
|
+ project.configurations.create(PACKAGING_TEST_CONFIGURATION)
|
|
|
|
|
|
// Creates all the main Vagrant tasks
|
|
// Creates all the main Vagrant tasks
|
|
createVagrantTasks(project)
|
|
createVagrantTasks(project)
|
|
@@ -144,10 +146,12 @@ class VagrantTestPlugin implements Plugin<Project> {
|
|
}
|
|
}
|
|
|
|
|
|
private static void createCleanTask(Project project) {
|
|
private static void createCleanTask(Project project) {
|
|
- project.tasks.create('clean', Delete.class) {
|
|
|
|
- description 'Clean the project build directory'
|
|
|
|
- group 'Build'
|
|
|
|
- delete project.buildDir
|
|
|
|
|
|
+ if (project.tasks.findByName('clean') == null) {
|
|
|
|
+ project.tasks.create('clean', Delete.class) {
|
|
|
|
+ description 'Clean the project build directory'
|
|
|
|
+ group 'Build'
|
|
|
|
+ delete project.buildDir
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -174,6 +178,18 @@ class VagrantTestPlugin implements Plugin<Project> {
|
|
from project.configurations[PACKAGING_CONFIGURATION]
|
|
from project.configurations[PACKAGING_CONFIGURATION]
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ File testsDir = new File(packagingDir, 'tests')
|
|
|
|
+ Copy copyPackagingTests = project.tasks.create('copyPackagingTests', Copy) {
|
|
|
|
+ into testsDir
|
|
|
|
+ from project.configurations[PACKAGING_TEST_CONFIGURATION]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Task createTestRunnerScript = project.tasks.create('createTestRunnerScript', FileContentsTask) {
|
|
|
|
+ dependsOn copyPackagingTests
|
|
|
|
+ file "${testsDir}/run-tests.sh"
|
|
|
|
+ contents "java -cp \"\$PACKAGING_TESTS/*\" org.junit.runner.JUnitCore ${-> project.extensions.esvagrant.testClass}"
|
|
|
|
+ }
|
|
|
|
+
|
|
Task createVersionFile = project.tasks.create('createVersionFile', FileContentsTask) {
|
|
Task createVersionFile = project.tasks.create('createVersionFile', FileContentsTask) {
|
|
dependsOn copyPackagingArchives
|
|
dependsOn copyPackagingArchives
|
|
file "${archivesDir}/version"
|
|
file "${archivesDir}/version"
|
|
@@ -234,7 +250,8 @@ class VagrantTestPlugin implements Plugin<Project> {
|
|
|
|
|
|
Task vagrantSetUpTask = project.tasks.create('setupPackagingTest')
|
|
Task vagrantSetUpTask = project.tasks.create('setupPackagingTest')
|
|
vagrantSetUpTask.dependsOn 'vagrantCheckVersion'
|
|
vagrantSetUpTask.dependsOn 'vagrantCheckVersion'
|
|
- vagrantSetUpTask.dependsOn copyPackagingArchives, createVersionFile, createUpgradeFromFile, createUpgradeIsOssFile
|
|
|
|
|
|
+ vagrantSetUpTask.dependsOn copyPackagingArchives, copyPackagingTests, createTestRunnerScript
|
|
|
|
+ vagrantSetUpTask.dependsOn createVersionFile, createUpgradeFromFile, createUpgradeIsOssFile
|
|
vagrantSetUpTask.dependsOn copyBatsTests, copyBatsUtils
|
|
vagrantSetUpTask.dependsOn copyBatsTests, copyBatsUtils
|
|
}
|
|
}
|
|
|
|
|
|
@@ -393,20 +410,29 @@ class VagrantTestPlugin implements Plugin<Project> {
|
|
packagingTest.dependsOn(batsPackagingTest)
|
|
packagingTest.dependsOn(batsPackagingTest)
|
|
}
|
|
}
|
|
|
|
|
|
- // This task doesn't do anything yet. In the future it will execute a jar containing tests on the vm
|
|
|
|
- Task groovyPackagingTest = project.tasks.create("vagrant${boxTask}#groovyPackagingTest")
|
|
|
|
- groovyPackagingTest.dependsOn(up)
|
|
|
|
- groovyPackagingTest.finalizedBy(halt)
|
|
|
|
|
|
+ Task javaPackagingTest = project.tasks.create("vagrant${boxTask}#javaPackagingTest", VagrantCommandTask) {
|
|
|
|
+ command 'ssh'
|
|
|
|
+ boxName box
|
|
|
|
+ environmentVars vagrantEnvVars
|
|
|
|
+ dependsOn up, setupPackagingTest
|
|
|
|
+ finalizedBy halt
|
|
|
|
+ args '--command', "bash \"\$PACKAGING_TESTS/run-tests.sh\""
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // todo remove this onlyIf after all packaging tests are consolidated
|
|
|
|
+ javaPackagingTest.onlyIf {
|
|
|
|
+ project.extensions.esvagrant.testClass != null
|
|
|
|
+ }
|
|
|
|
|
|
- TaskExecutionAdapter groovyPackagingReproListener = createReproListener(project, groovyPackagingTest.path)
|
|
|
|
- groovyPackagingTest.doFirst {
|
|
|
|
- project.gradle.addListener(groovyPackagingReproListener)
|
|
|
|
|
|
+ TaskExecutionAdapter javaPackagingReproListener = createReproListener(project, javaPackagingTest.path)
|
|
|
|
+ javaPackagingTest.doFirst {
|
|
|
|
+ project.gradle.addListener(javaPackagingReproListener)
|
|
}
|
|
}
|
|
- groovyPackagingTest.doLast {
|
|
|
|
- project.gradle.removeListener(groovyPackagingReproListener)
|
|
|
|
|
|
+ javaPackagingTest.doLast {
|
|
|
|
+ project.gradle.removeListener(javaPackagingReproListener)
|
|
}
|
|
}
|
|
if (project.extensions.esvagrant.boxes.contains(box)) {
|
|
if (project.extensions.esvagrant.boxes.contains(box)) {
|
|
- packagingTest.dependsOn(groovyPackagingTest)
|
|
|
|
|
|
+ packagingTest.dependsOn(javaPackagingTest)
|
|
}
|
|
}
|
|
|
|
|
|
Task platform = project.tasks.create("vagrant${boxTask}#platformTest", VagrantCommandTask) {
|
|
Task platform = project.tasks.create("vagrant${boxTask}#platformTest", VagrantCommandTask) {
|