summaryrefslogtreecommitdiffstats
path: root/offline-installer-review.sh
diff options
context:
space:
mode:
authorMateusz Pilat <m.pilat@partner.samsung.com>2019-05-08 13:33:46 +0200
committerMateusz Pilat <m.pilat@partner.samsung.com>2019-05-09 15:53:02 +0200
commitb0f546ad82bcb427bc5f724150063d239f3a306d (patch)
tree7fea924e8bd1c77c485bd2ac3c4fd78e845a455d /offline-installer-review.sh
parent029b36f9f0faedc18b032ebb8c598118ff80f67b (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-xoffline-installer-review.sh96
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