Geode: Add control for executing test using docker
[infra/cicd.git] / jjb / geode / apache-geode-test / execute_tests.sh
index c728518cfcac13451fb42c6c65e653fea5c4da9e..27578b20caf743053be52eec4a0ad1bbc7e2d0d5 100755 (executable)
@@ -45,12 +45,16 @@ GRADLE_SKIP_TASK_OPTIONS="-x javadoc -x spotlessCheck -x rat"
 
 if [[ -n "${PARALLEL_DUNIT}" && "${PARALLEL_DUNIT}" == "true" ]]; then
   PARALLEL_DUNIT="-PparallelDunit"
-  if [ -n "${DUNIT_PARALLEL_FORKS}" ]; then
+  if [[ -n "${DUNIT_PARALLEL_FORKS}" && "${TEST_USING_DOCKER}" == "false" ]] ; then
     DUNIT_PARALLEL_FORKS="--max-workers=${DUNIT_PARALLEL_FORKS} -PtestMaxParallelForks=${DUNIT_PARALLEL_FORKS} -PdunitParallelForks=${DUNIT_PARALLEL_FORKS}"
+  elif [[ -n "${DUNIT_PARALLEL_FORKS}" && "${TEST_USING_DOCKER}" == "true" ]] ; then
+    DUNIT_PARALLEL_FORKS="-PdunitParallelForks=${DUNIT_PARALLEL_FORKS}"
+    DOCKER_TESTING_OPTIONS="-PdunitDockerUser=geode -PdunitDockerImage=\$(docker images --format '{{.Repository}}:{{.Tag}}' | grep test-container)"
   fi
 else
   PARALLEL_DUNIT=""
   DUNIT_PARALLEL_FORKS=""
+  DOCKER_TESTING_OPTIONS=""
 fi
 
 case $ARTIFACT_SLUG in
@@ -89,6 +93,7 @@ GRADLE_ARGS=" \
     -PtestJava17Home=${TEST_JAVA_17_HOME} \
     ${PARALLEL_DUNIT} \
     ${DUNIT_PARALLEL_FORKS} \
+    ${DOCKER_TESTING_OPTIONS} \
     ${DEFAULT_GRADLE_TASK_OPTIONS} \
     ${GRADLE_SKIP_TASK_OPTIONS} \
     ${GRADLE_TASK} \
@@ -103,6 +108,15 @@ EXEC_COMMAND="bash -c 'echo Building with: $SEP \
   cp gradlew gradlewStrict $SEP \
   sed -e 's/JAVA_HOME/GRADLE_JVM/g' -i.bak gradlewStrict $SEP \
   GRADLE_JVM=${JAVA_BUILD_PATH} JAVA_TEST_PATH=${JAVA_TEST_PATH} ./gradlewStrict ${GRADLE_ARGS}'"
-
 echo "${EXEC_COMMAND}"
 eval "${EXEC_COMMAND}"
+
+# Cleanup
+# Make sure all test containers are stopped and removed when tests are finished
+DOCKER_CONTAINERS=$(sudo docker ps -a -q 2> /dev/null)
+if [ -n "${DOCKER_CONTAINERS}" ]; then
+  docker stop ${DOCKER_CONTAINERS} > /dev/null
+  echo -e  "Removing containers with ID:"
+  docker rm ${DOCKER_CONTAINERS}
+fi
+