Files
dc-deployments-automation/bin/run-tests-in-batches

46 lines
984 B
Bash
Executable File

#!/bin/bash
set -e
#set -x
# Install dev packages from Pipfile.lock if necessary.
pipenv sync --dev
BATCH_SIZE=3
BATCH_NUMBER=""
batch_args="$1"
case $batch_args in
-b|--batch)
BATCH_NUMBER="$2"
;;
--default)
BATCH_NUMBER=""
;;
esac
if [[ -z "$BATCH_NUMBER" ]]; then
echo "Batch number not passed in. Please pass a batch number to run tests."
exit -1
fi
case ${BATCH_NUMBER} in
''|*[1-9]*) ;;
*) echo "Bad Input for Batch number. ${BATCH_NUMBER} is not a valid batch number (Should be a number >= 1)" && exit -1 ;;
esac
scenarios=( $(ls -d1 roles/**/molecule/* | sort) )
offset=$(( ${BATCH_NUMBER} - 1))
test_start_index=$(( ${offset} * $BATCH_SIZE ))
scenario_batch="${scenarios[@]:$test_start_index:$BATCH_SIZE}"
echo "Scenarios that will be executed as part of this batch: ${scenario_batch}"
for scenario in ${scenario_batch}; do
pushd $(dirname $(dirname $scenario))
pipenv run \
molecule test --all
popd
done;