summaryrefslogtreecommitdiffstats
path: root/fuel/ci/build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'fuel/ci/build.sh')
-rwxr-xr-xfuel/ci/build.sh194
1 files changed, 53 insertions, 141 deletions
diff --git a/fuel/ci/build.sh b/fuel/ci/build.sh
index bb0d124..cdaa6ef 100755
--- a/fuel/ci/build.sh
+++ b/fuel/ci/build.sh
@@ -17,6 +17,9 @@ if [ -f ${LOCK_FILE} ]; then \
fi; \
fi;' EXIT
+############################################################################
+# BEGIN of usage description
+#
usage ()
{
cat << EOF
@@ -31,6 +34,8 @@ OPTIONS:
-l log-file ($BUILD_LOG), specifies the output log-file (stdout and stderr), if not specified logs are output to console as normal
-v version tag to be applied to the build result
-r alternative remote access method script/program. curl is default.
+ -t run small build-script unit test.
+ -T run large build-script unit test.
-f build flags ($BUILD_FLAGS):
o s: Do nothing, succeed
o f: Do nothing, fail
@@ -70,136 +75,13 @@ build -c http://opnfv.org/artifactory/fuel/cache -d ~/jenkins/genesis/fuel/ci/ou
NOTE: At current the build scope is set to the git root of the repository, -d destination locations outside that scope will not work
EOF
}
+#
+# END of usage description
+############################################################################
-
-
-debug_make () {
- make -C ${BUILD_BASE} clean
- echo "This is a fake debug fuel .iso image" > ${BUILD_BASE}/fuel-6.0.1.iso
- echo "This is a fake debug versions file" > ${BUILD_BASE}/.versions
- rm -rf ${BUILD_BASE}/release
- mkdir ${BUILD_BASE}/release
- echo "This is a fake debug OPNFV .iso image" > ${BUILD_BASE}/release/fake-debug.iso
- echo "This is a fake debug OPNFV .iso.txt message" > ${BUILD_BASE}/release/fake-debug.iso.txt
- echo "This a fake debug odl build history" > ${BUILD_BASE}/opendaylight/.odl-build-history
- echo "This a fake debug odl build log" > ${BUILD_BASE}/opendaylight/.odl-build.log
-}
-
-cache_check () {
- if [ ! -f ${BUILD_BASE}/fuel-6.0.1.iso ] || \
- [ ! -f ${BUILD_BASE}/.versions ] || \
- [ ! -f ${BUILD_BASE}/opendaylight/.odl-build-history ]; \
- [ ! -f ${BUILD_BASE}/opendaylight/.odl-build.log ]; then
- echo "Cache not present in the build system"
- echo "TEST FAILED"
- exit $rc
- fi
-}
-
-integration-test () {
-
-##### Always succeed integration test ####
- make -C ${BUILD_BASE} clean
- echo "TEST - $0 - ALWAYS SUCCEED"
- set +e
- $0 -f s tmp/output
- rc=$?
- set -e
- if [ $rc -ne 0 ]; then
- echo "TEST FAILED"
- rc=150
- exit $rc
- fi
-
-##### Always fail integration test ####
- make -C ${BUILD_BASE} clean
- echo "TEST - $0 - ALWAYS FAIL"
- set +e
- $0 -f f tmp/output
- rc=$?
- set -e
- if [ $rc -eq 0 ]; then
- echo "TEST FAILED"
- rc=151
- exit $rc
- fi
-
-##### Populate cache integration test ####
- make -C ${BUILD_BASE} clean
- echo "TEST - $0 - POPULATE CACHE"
- rm -rf tmp
- mkdir tmp
- mkdir tmp/cache
- set +e
- $0 -c ${BUILD_CACHE_URI} -f PD tmp/output
- rc=$?
- set -e
- if [ $rc -ne 0 ]; then
- echo "TEST FAILED"
- rc=152
- exit $rc
- fi
-
- if [ ! -f tmp/output/fake-debug.iso ] || [ ! -f tmp/output/fake-debug.iso ]; then
- echo "TEST FAILED"
- rc=153
- exit $rc
- fi
- rc=154
- cache_check
-
-##### Build uinge cache integration test ####
- make -C ${BUILD_BASE} clean
- echo "TEST - $0 - BUILD USING CACHE"
- set +e
- $0 -c ${BUILD_CACHE_URI} -f D tmp/output
- rc=$?
- set -e
- if [ $rc -ne 0 ]; then
- echo "TEST FAILED"
- rc=155
- exit $rc
- fi
-
- if [ ! -f tmp/output/fake-debug.iso ] || [ ! -f tmp/output/fake-debug.iso ]; then
- echo "TEST FAILED"
- rc=156
- exit $rc
- fi
- rc=157
- cache_check
-
-#### Repopulate cache because cache non existant ####
- make -C ${BUILD_BASE} clean
- echo "TEST - $0 - BUILD USING CACHE"
- rm -rf tmp/cache/*
- set +e
- $0 -c ${BUILD_CACHE_URI} -f D tmp/output
- rc=$?
- set -e
- if [ $rc -ne 0 ]; then
- echo "TEST FAILED"
- rc=158
- exit $rc
- fi
-
- if [ ! -f tmp/output/fake-debug.iso ] || [ ! -f tmp/output/fake-debug.iso ]; then
- echo "TEST FAILED"
- rc=160
- exit $rc
- fi
- rc=161
- cache_check
-
-# Repopulate cache because cach is ivalidated
-#TBD
-rm -rf tmp
-echo "All tests passed!"
-rc=0
-exit $rc
-}
-
-#DEFAULT VALUES
+############################################################################
+# BEGIN of variables to customize
+#
BUILD_BASE=$(readlink -e ../build/)
RESULT_DIR="${BUILD_BASE}/release"
BUILD_SPEC="${BUILD_BASE}/config.mk"
@@ -207,8 +89,14 @@ CACHE_DIR="cache"
LOCAL_CACHE_ARCH_NAME="fuel-cache"
REMOTE_CACHE_ARCH_NAME="fuel_cache-$(md5sum ${BUILD_SPEC}| cut -f1 -d " ")"
REMOTE_ACCESS_METHD=curl
-
-#SCRIPT ASSIGNED VARIABLES
+INCLUDE_DIR=../include
+#
+# END of variables to customize
+############################################################################
+
+############################################################################
+# BEGIN of script assigned variables
+#
SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
LOCK_FILE="${SCRIPT_DIR}/.build.lck"
TEST_SUCCEED=0
@@ -220,6 +108,7 @@ RECURSIV=0
DETACH=0
DEBUG=0
INTEGRATION_TEST=0
+FULL_INTEGRATION_TEST=0
INTERACTIVE=0
BUILD_CACHE_URI=
BUILD_SPEC=
@@ -227,8 +116,22 @@ BUILD_DIR=
BUILD_LOG=
BUILD_VERSION=
MAKE_ARGS=
-
-while getopts "s:c:v:f:l:r:RTh" OPTION
+#
+# END of script assigned variables
+############################################################################
+
+############################################################################
+# BEGIN of include pragmas
+#
+source ${INCLUDE_DIR}/build.sh.debug
+#
+# END of include
+############################################################################
+
+############################################################################
+# BEGIN of main
+#
+while getopts "s:c:v:f:l:r:RtTh" OPTION
do
case $OPTION in
h)
@@ -264,8 +167,13 @@ do
RECURSIVE=1
;;
+ t)
+ INTEGRATION_TEST=1
+ ;;
+
T)
INTEGRATION_TEST=1
+ FULL_INTEGRATION_TEST=1
;;
*)
@@ -316,7 +224,7 @@ for ((i=0; i<${#BUILD_FLAGS};i++)); do
;;
*)
- echo "${BUILD_FLAGS:$i:1} is not a valid build flag"
+ echo "${BUILD_FLAGS:$i:1} is not a valid build flag - exiting ...."
rc=100
exit $rc
;;
@@ -330,13 +238,13 @@ if [ ${INTEGRATION_TEST} -eq 1 ]; then
fi
if [ ! -f ${BUILD_SPEC} ]; then
- echo "spec file does not exist: $BUILD_SPEC"
+ echo "spec file does not exist: $BUILD_SPEC - exiting ...."
rc=100
exit $rc
fi
if [ -z ${BUILD_DIR} ]; then
- echo "Missing build directory"
+ echo "Missing build directory - exiting ...."
rc=100
exit $rc
fi
@@ -379,7 +287,7 @@ if [ ! -z ${BUILD_CACHE_URI} ]; then
mkdir /tmp/cache
echo "Downloading cach file ${BUILD_CACHE_URI}/${REMOTE_CACHE_ARCH_NAME} ..."
set +e
- ${REMOTE_ACCESS_METHD} -o /tmp/cache/${LOCAL_CACHE_ARCH_NAME}.tgz ${BUILD_CACHE_URI}/${REMOTE_CACHE_ARCH_NAME}
+ ${REMOTE_ACCESS_METHD} -o /tmp/cache/${LOCAL_CACHE_ARCH_NAME}.tgz ${BUILD_CACHE_URI}/${REMOTE_CACHE_ARCH_NAME}.tgz
rc=$?
set -e
if [ $rc -ne 0 ]; then
@@ -389,10 +297,11 @@ if [ ! -z ${BUILD_CACHE_URI} ]; then
echo "Unpacking cache file ..."
tar -C /tmp/cache -xvf /tmp/cache/${LOCAL_CACHE_ARCH_NAME}.tgz
cp /tmp/cache/cache/.versions ${BUILD_BASE}/.
- echo "Validating cache content ..."
set +e
make -C ${BUILD_BASE} validate-cache;
rc=$?
+ set -e
+
if [ $rc -ne 0 ]; then
echo "Cache invalid - a new cache will be built "
POPULATE_CACHE=1
@@ -455,13 +364,13 @@ rc=$?
set -e
if [ $rc -gt 0 ]; then
- echo "Build: make prepare-cache failed, exiting ..."
+ echo "Build: make prepare-cache failed - exiting ..."
rc=100
exit $rc
fi
echo "Copying built OPNFV .iso file to target directory ${BUILD_DIR} ..."
rm -rf ${BUILD_DIR}
-mkdir ${BUILD_DIR}
+mkdir -p ${BUILD_DIR}
cp ${BUILD_BASE}/.versions ${BUILD_DIR}
cp ${RESULT_DIR}/*.iso* ${BUILD_DIR}
@@ -470,9 +379,12 @@ if [ $POPULATE_CACHE -eq 1 ]; then
echo "Building cache ..."
tar --dereference -C ${BUILD_BASE} -caf ${BUILD_BASE}/${LOCAL_CACHE_ARCH_NAME}.tgz ${CACHE_DIR}
echo "Uploading cache ${BUILD_CACHE_URI}/${REMOTE_CACHE_ARCH_NAME}"
- ${REMOTE_ACCESS_METHD} -T ${BUILD_BASE}/${LOCAL_CACHE_ARCH_NAME}.tgz ${BUILD_CACHE_URI}/${REMOTE_CACHE_ARCH_NAME}
+ ${REMOTE_ACCESS_METHD} -T ${BUILD_BASE}/${LOCAL_CACHE_ARCH_NAME}.tgz ${BUILD_CACHE_URI}/${REMOTE_CACHE_ARCH_NAME}.tgz
rm ${BUILD_BASE}/${LOCAL_CACHE_ARCH_NAME}.tgz
fi
fi
echo "Success!!!"
exit 0
+#
+# END of main
+############################################################################