#!/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;