Geode: Add control for executing test using docker 73/15973/1
authorrobert.tomczyk <robert.tomczyk.est@gmail.com>
Wed, 9 Nov 2022 11:13:49 +0000 (11:13 +0000)
committerrobert.tomczyk <robert.tomczyk.est@gmail.com>
Wed, 9 Nov 2022 11:13:49 +0000 (11:13 +0000)
Change-Id: Iee635e08a461b9b53c0d1c20016a6c6a733c483e

jjb/geode/apache-geode-test-coordinator.yaml
jjb/geode/apache-geode-test/execute_stressnew.sh
jjb/geode/apache-geode-test/execute_tests.sh
jjb/geode/global-template-apache-geode-test.yaml

index abcb532872345d00941d995d7b96beffdb834e64..f17219638a6085f587e1c133c068142816c6109d 100644 (file)
     project: 'Nordix/geode'
 
     stream:
+      - 'release-nordix-1.15.1':
+          branch: 'release-nordix/1.15.1'
+          test_using_docker: false
       - 'release-nordix-1.14.0':
           branch: 'release-nordix/1.14.0'
+          test_using_docker: true
     jobs:
       - 'apache-geode-verify-{stream}-coordinator'
 
           name: PUBLISH_GEODE
           default: true
           description: Publish Geode software to Nordix Artifactory after all tests are passed
+      - bool:
+          name: TEST_USING_DOCKER
+          default: '{test_using_docker}'
+          description: Geode versions prior to 1.15 were using a docker for executing parallel testing. Please set it to 'no' when building version 1.15 onwards.
 
     properties:
       - logrotate
index cf0ff78419a469c828366199b7e027c26d1e43b5..059fd0489bb82b963b272d8d4c63ffb819d268f6 100755 (executable)
@@ -112,12 +112,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
@@ -156,6 +160,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} \
@@ -173,4 +178,12 @@ EXEC_COMMAND="bash -c 'echo Building with: $SEP \
 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
 
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
+
index 1acaf081122be7c195e709bd02a13dbfe3e8485b..7209fb67046ad6146a05250cd0d8126d7d0bf76c 100644 (file)
           name: TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX
           default: 'registry.nordix.org/docker-hub-proxy/'
           description: 'Docker Hub proxy location for geode test containers required for AcceptanceTest'
+      - bool:
+          name: TEST_USING_DOCKER
+          default: false
+          description: Geode versions prior to 1.15 were using a docker for executing parallel testing. Please set it to 'no' when building version 1.15 onwards.
 
     scm:
       - git-scm-github: