X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=fuel%2Fci%2Fbuild.sh;h=cdaa6ef7b7982d63cf5046aa124e6f02513c1cc8;hb=2de197be04b871b437e35b55ca7f48d921595303;hp=bb0d124432fdd837d0609639f52c6f252d2c3fab;hpb=a5a094a199226f312e795c3019c5793094e5378e;p=genesis.git 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 +############################################################################