DCD-621: Changes pipelines to run scenarios in parallel. (9 batches of 3 scenarios each)

This commit is contained in:
Varun Arbatti
2019-08-29 16:12:14 +10:00
parent 856e60abe6
commit 8cf01382af
2 changed files with 126 additions and 5 deletions

50
bin/run-tests-in-batches Executable file
View File

@@ -0,0 +1,50 @@
#!/bin/bash
set -e
#set -x
# Install dev packages from Pipfile.lock if necessary.
#pipenv sync --dev
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} * 3 ))
for scenario in "${scenarios[@]:$test_start_index:3}"; do
pushd $(dirname $(dirname $scenario))
pipenv run \
molecule test --all
popd
done;
#for role in `find roles/ -name molecule | sort`; do
# pushd `dirname $role`
# pipenv run \
# molecule test --all
# popd
#done

View File

@@ -12,9 +12,80 @@ definitions:
pipelines: pipelines:
default: default:
- step: - step:
name: Pre Parallelization stage
script:
- echo "Running tests in 9 batches of 3 scenarios (max) each"
- parallel:
- step:
name: Molecule test batch 1
services: services:
- docker - docker
script: script:
- apt-get update && apt-get install -y virtualenv python-dev - apt-get update && apt-get install -y virtualenv python-dev
- ./bin/install-ansible - ./bin/install-ansible
- ./bin/run-all-tests - ./bin/run-all-tests --batch 1
- step:
name: Molecule test batch 2
services:
- docker
script:
- apt-get update && apt-get install -y virtualenv python-dev
- ./bin/install-ansible
- ./bin/run-all-tests --batch 2
- step:
name: Molecule test batch 3
services:
- docker
script:
- apt-get update && apt-get install -y virtualenv python-dev
- ./bin/install-ansible
- ./bin/run-all-tests --batch 3
- step:
name: Molecule test batch 4
services:
- docker
script:
- apt-get update && apt-get install -y virtualenv python-dev
- ./bin/install-ansible
- ./bin/run-all-tests --batch 4
- step:
name: Molecule test batch 5
services:
- docker
script:
- apt-get update && apt-get install -y virtualenv python-dev
- ./bin/install-ansible
- ./bin/run-all-tests --batch 5
- step:
name: Molecule test batch 6
services:
- docker
script:
- apt-get update && apt-get install -y virtualenv python-dev
- ./bin/install-ansible
- ./bin/run-all-tests --batch 6
- step:
name: Molecule test batch 7
services:
- docker
script:
- apt-get update && apt-get install -y virtualenv python-dev
- ./bin/install-ansible
- ./bin/run-all-tests --batch 7
- step:
name: Molecule test batch 8
services:
- docker
script:
- apt-get update && apt-get install -y virtualenv python-dev
- ./bin/install-ansible
- ./bin/run-all-tests --batch 8
- step:
name: Molecule test batch 9
services:
- docker
script:
- apt-get update && apt-get install -y virtualenv python-dev
- ./bin/install-ansible
- ./bin/run-all-tests --batch 9