diff options
author | Mateusz Pilat <m.pilat@partner.samsung.com> | 2019-05-08 13:33:46 +0200 |
---|---|---|
committer | Mateusz Pilat <m.pilat@partner.samsung.com> | 2019-05-09 15:53:02 +0200 |
commit | b0f546ad82bcb427bc5f724150063d239f3a306d (patch) | |
tree | 7fea924e8bd1c77c485bd2ac3c4fd78e845a455d /offline-installer-review.sh | |
parent | 029b36f9f0faedc18b032ebb8c598118ff80f67b (diff) |
Extending molecule test to playbooks
Review should also execute molecule tests for ansible/test/play-xxx when anything in /ansible/test has been changed
Change-Id: I9a106a1c141b1053db6ac892e2dcecd4e646fd5b
Issue-ID: OOM-1801
Signed-off-by: Mateusz Pilat <m.pilat@partner.samsung.com>
Diffstat (limited to 'offline-installer-review.sh')
-rwxr-xr-x | offline-installer-review.sh | 96 |
1 files changed, 65 insertions, 31 deletions
diff --git a/offline-installer-review.sh b/offline-installer-review.sh index ab327ad9..3530d8f8 100755 --- a/offline-installer-review.sh +++ b/offline-installer-review.sh @@ -1,5 +1,4 @@ #! /usr/bin/env bash - # COPYRIGHT NOTICE STARTS HERE # # Copyright 2018 © Samsung Electronics Co., Ltd. @@ -17,45 +16,80 @@ # limitations under the License. # # COPYRIGHT NOTICE ENDS HERE +############################################################################### +# This script performs Jenkins Change Verification for ONAP Offline Installer # +# No parameters are expected # +############################################################################### -### This script performs Jenkins Change Verification for ONAP Offline Installer -# No parameters are expected -### -####################################################################### -# MAIN # -####################################################################### -#if ansible was changed +function prep_ubuntu_16_04_for_molecule() { + sudo killall apt apt-get + sudo apt-get --assume-yes install software-properties-common + sudo add-apt-repository --yes ppa:deadsnakes/ppa + sudo apt update + sudo apt install --assume-yes python3.6 + sudo apt install --assume-yes python3.6-venv +} - if `git diff HEAD^ HEAD --name-only | grep -q "ansible/test"`; - then echo "TO DO: FULL ANSIBLE TEST" ; - else - ROLE_CHANGES=(`git diff HEAD^ HEAD --name-only | grep "ansible/role" | cut -f 1-3 -d "/" | sort | uniq`) - if [ -z "${ROLE_CHANGES}" ]; then - echo "NO ANSIBLE TESTS REQUIRED" +function run_molecule() { + prep_ubuntu_16_04_for_molecule + local roles=("$@") + local MOLECULE_RC + for role in ${roles[@]} + do + if `find ${role} -name molecule.yml | grep -q '.*'`; then + ./ansible/test/bin/ci-molecule.sh ${role} + MOLECULE_RC=$? + if [ ${MOLECULE_RC} -ne "0" ]; then FAILED_ROLES+=(${role}); fi else - for i in ${ROLE_CHANGES[@]} - do - sudo ./ansible/test/bin/ci-molecule.sh ${i} - MOLECULE_RC=$? - if [ ${MOLECULE_RC} -ne "0" ]; then echo "MOLECULE TEST FAILED FOR ${i};";exit 1; fi - done + echo "[WARNING] ---------- THERE ARE NO TESTS DEFINED FOR ${role} ----------" fi - fi + done +} + +#######################################################################$ +# MAIN #$ +#######################################################################$ +FAILED_ROLES=() + +#if ansible role was changed$$ +ROLE_CHANGES=(`git diff HEAD^ HEAD --name-only | grep "ansible/role" | cut -f 1-3 -d "/" | sort -u`) +if [ -z "${ROLE_CHANGES}" ]; then + echo "NO ANSIBLE ROLE TESTS REQUIRED" +else + run_molecule "${ROLE_CHANGES[@]}" +fi +#if ansible was changed + +if `git diff HEAD^ HEAD --name-only | grep -q "ansible/test"`; then + PLAYBOOKS=(`find ansible/test -name "play-*"`) + run_molecule "${PLAYBOOKS[@]}" +else + echo "NO FULL ANSIBLE TEST REQUIRED"; +fi #if build was changed - if `git diff HEAD^ HEAD --name-only | grep -q "build"`; - then echo "TO DO: BUILD TEST" ; - else - echo "NO BUILD TEST REQUIRED" - fi +if `git diff HEAD^ HEAD --name-only | grep -q "build"`; then + echo "TO DO: BUILD TEST" ; +else + echo "NO BUILD TEST REQUIRED" +fi #if documentation was changed - if `git diff HEAD^ HEAD --name-only | grep -q "docs"`; - then echo "TO DO: DOC TEST"; - else - echo "NO DOC TEST REQUIRED" - fi +if `git diff HEAD^ HEAD --name-only | grep -q "docs"`; then + echo "TO DO: DOC TEST"; +else + echo "NO DOC TEST REQUIRED" +fi + +#SUMMARY RESULTS + +if [ -z ${FAILED_ROLES} ]; then + echo "All verification steps passed" +else + echo "Verification failed for ${FAILED_ROLES[*]}" + exit 1 +fi |