From 3c11e9669b5559bc9b95192abf97b9613b5854d1 Mon Sep 17 00:00:00 2001 From: Tim Rozet Date: Fri, 3 Jun 2016 17:19:23 -0400 Subject: Fixes build caching JIRA: APEX-167 Change-Id: Ibb9d69eb4326911a5c62fc9f10b02ccf191a3046 Signed-off-by: Tim Rozet --- build/cache.sh | 15 +++++++++++++-- build/overcloud-onos.sh | 4 ---- ci/build.sh | 22 +++++++++++----------- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/build/cache.sh b/build/cache.sh index 72d0a87f..a88ffce1 100644 --- a/build/cache.sh +++ b/build/cache.sh @@ -35,6 +35,7 @@ function curl_file { # $1 = download url function populate_cache { + local my_md5 cache_dir # get the file name @@ -42,15 +43,25 @@ function populate_cache { # check if the cache file exists # and if it has an md5 compare that - echo "Checking cache file: $1" + echo "Checking cache file exists: ${filename}" if [ ! -f $CACHE_DIR/${filename} ]; then + echo "Cache file: ${CACHE_DIR}/${filename} missing...will download..." curl_file $1 $filename else + echo "Cache file exists...comparing MD5 checksum" remote_md5="$(curl -sf -L ${1}.md5 | awk {'print $1'})" if [ -z "$remote_md5" ]; then echo "Got empty MD5 from remote for $filename, skipping MD5 check" - elif [ "$remote_md5" != "$(grep ${filename} $CACHE_DIR/.cache | awk {'print $1'})" ]; then curl_file $1 $filename + else + my_md5=$(grep ${filename} $CACHE_DIR/.cache | awk {'print $1'}) + if [ "$remote_md5" != "$my_md5" ]; then + echo "MD5 mismatch: Remote MD5 is ${remote_md5}, Cache file MD5 is ${my_md5}" + echo "Downloading $filename" + curl_file $1 $filename + else + echo "Will use cache for ${filename}" + fi fi fi } diff --git a/build/overcloud-onos.sh b/build/overcloud-onos.sh index 070365d7..7922a54a 100755 --- a/build/overcloud-onos.sh +++ b/build/overcloud-onos.sh @@ -22,10 +22,6 @@ cp -f overcloud-full.qcow2 overcloud-full-onos_build.qcow2 rm -rf puppet-onos git clone https://github.com/bobzhouHW/puppet-onos.git populate_cache "$onos_release_uri/$onos_release_file" - -# download jdk, onos and maven dependancy packages. -#for i in jdk-8u51-linux-x64.tar.gz onos-1.3.0.tar.gz repository.tar; do - tar --xform="s:puppet-onos/:onos/:" -czf puppet-onos.tar.gz puppet-onos LIBGUESTFS_BACKEND=direct virt-customize --install "java-1.8.0-openjdk" \ diff --git a/ci/build.sh b/ci/build.sh index e6870558..dec73760 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -99,20 +99,17 @@ if [ -n "$RELEASE" ]; then MAKE_ARGS+="RELEASE=$RELEASE "; fi if [ -n "$CACHE_DEST" ]; then echo "Retrieving Cache" if [ -f $CACHE_DEST/${CACHE_NAME}.tgz ]; then + echo "Cache found at ${CACHE_DEST}/${CACHE_NAME}.tgz" rm -rf $BUILD_BASE/$CACHE_DIR - cp -f $CACHE_DEST/${CACHE_NAME}.tgz $BUILD_BASE/${CACHE_NAME}.tgz - tar xzf $BUILD_BASE/${CACHE_NAME}.tgz + echo "Unpacking Cache to $BUILD_BASE" + tar -xvzf $CACHE_DEST/${CACHE_NAME}.tgz -C ${BUILD_BASE} + echo "Cache contents after unpack:" + ls -l $BUILD_BASE/$CACHE_DIR elif [ ! -d $BUILD_BASE/$CACHE_DIR ]; then mkdir $BUILD_BASE/$CACHE_DIR fi fi -#create build_output for legacy functionality compatibility in jenkins -if [[ ! -d ../build_output ]]; then - rm -f ../build_output - ln -s build/noarch/ ../build_output -fi - # Conditionally execute RPM build checks if the specs change and target is not rpm or iso if [[ "$MAKE_TARGETS" == "images" ]]; then commit_file_list=$(git show --pretty="format:" --name-only) @@ -158,9 +155,12 @@ echo "Build Complete" # Build new Cache if [ -n "$CACHE_DEST" ]; then echo "Building Cache" - tar --atime-preserve --dereference -C $BUILD_BASE -caf $BUILD_BASE/${CACHE_NAME}.tgz $CACHE_DIR - echo "Copying Cache" if [ ! -d $CACHE_DEST ]; then mkdir -p $CACHE_DEST; fi - cp $BUILD_BASE/${CACHE_NAME}.tgz $CACHE_DEST/${CACHE_NAME}.tgz + tar --atime-preserve --dereference -C $BUILD_BASE -caf $BUILD_BASE/${CACHE_NAME}.tgz $CACHE_DIR -C ${CACHE_DEST}/ + if [ -f "${CACHE_DEST}/${CACHE_NAME}.tgz" ]; then + echo "Cache Build Complete" + else + echo "WARN: Cache file did not build correctly" + fi fi echo "Complete" -- cgit 1.2.3-korg