aboutsummaryrefslogtreecommitdiffstats
path: root/ci/build-cirv.sh
diff options
context:
space:
mode:
Diffstat (limited to 'ci/build-cirv.sh')
-rwxr-xr-xci/build-cirv.sh124
1 files changed, 124 insertions, 0 deletions
diff --git a/ci/build-cirv.sh b/ci/build-cirv.sh
new file mode 100755
index 0000000..e57b758
--- /dev/null
+++ b/ci/build-cirv.sh
@@ -0,0 +1,124 @@
+#!/bin/bash
+#
+# Copyright 2020-2018 Spirent Communications, Intel Corporation., Tieto
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# CIRV build execution script
+
+# Usage:
+# build-cirv.sh job_type
+# where job_type is one of "verify", "merge", "daily"
+# Version-1: 'verify'
+
+#
+# exit codes
+#
+
+EXIT=0
+EXIT_SANITY_FAILED=1
+EXIT_PYLINT_FAILED=2
+
+#
+# configuration
+#
+
+SWV_BIN="./sdv/valid"
+LOG_FILE_PREFIX="/tmp/cirv_build"
+DATE=$(date -u +"%Y-%m-%d_%H-%M-%S")
+BRANCH=${GIT_BRANCH##*/}
+CIRVENV_DIR="$HOME/cirvenv"
+# WORKSPACE="./"
+
+#
+# main
+#
+
+echo
+
+# enter workspace dir
+cd $WORKSPACE
+
+
+# create virtualenv if needed
+if [ ! -e $CIRVENV_DIR ] ; then
+ echo "Create CIRV environment"
+ echo "========================="
+ virtualenv --python=python3 "$CIRVENV_DIR"
+ echo
+fi
+
+# acivate and update virtualenv
+echo "Update CIRV environment"
+echo "========================="
+source "$CIRVENV_DIR"/bin/activate
+pip install -r ./requirements.txt
+echo
+
+
+# execute pylint to check code quality
+function execute_cirv_pylint_check {
+ if ! ./check -b ; then
+ EXIT=$EXIT_PYLINT_FAILED
+ fi
+}
+
+# verify basic cirv functionality
+function execute_cirv_sanity {
+ DATE_SUFFIX=$(date -u +"%Y-%m-%d_%H-%M-%S")
+ LOG_FILE="${LOG_FILE_PREFIX}_sanity_${DATE_SUFFIX}.log"
+ echo "Execution of CIRV sanity checks:"
+ for PARAM in '--version' '--help'; do
+ echo -e "------------------------------------------------" >> $LOG_FILE
+ echo "$SWV_BIN $PARAM " >> $LOG_FILE
+ echo -e "------------------------------------------------" >> $LOG_FILE
+ $SWV_BIN $PARAM &>> $LOG_FILE
+ if $SWV_BIN $PARAM &>> $LOG_FILE ; then
+ printf " %-70s %-6s\n" "$SWV_BIN $PARAM" "OK"
+ else
+ printf " %-70s %-6s\n" "$SWV_BIN $PARAM" "FAILED"
+ EXIT=$EXIT_SANITY_TC_FAILED
+ fi
+ echo >> $LOG_FILE
+ done
+}
+
+# execute job based on passed parameter
+case $1 in
+ "verify")
+ echo "================="
+ echo "CIRV verify job"
+ echo "================="
+
+ execute_cirv_pylint_check
+ execute_cirv_sanity
+
+ exit $EXIT
+ ;;
+ "merge")
+ echo "================"
+ echo "CIRV merge job"
+ echo "================"
+
+ exit $EXIT
+ ;;
+ *)
+ echo "================"
+ echo "CIRV daily job"
+ echo "================"
+
+ exit $EXIT
+ ;;
+esac
+
+exit $EXIT