Cache as we go instead of in the end 23/7823/4
authorStefan K. Berg <stefan.k.berg@ericsson.com>
Sat, 23 Jan 2016 19:56:48 +0000 (20:56 +0100)
committerStefan Berg <stefan.k.berg@ericsson.com>
Sun, 24 Jan 2016 21:55:52 +0000 (21:55 +0000)
In order to speed up the build process when building with the cache
enabled, cache immediately following the build of a sub artifact
instead of at the end.

Should the build fail, we don't need to rebuild those parts that
already were successful in the last build.

Change-Id: I23b59f7ba4a04272aea855cf451793158fe12241
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
build/Makefile
build/cache.sh
build/f_isoroot/f_bgpvpn-pluginbuild/Makefile
build/f_isoroot/f_odlpluginbuild/Makefile
build/f_isoroot/f_onosfwpluginbuild/Makefile
build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile
build/f_isoroot/f_ovsnfv-dpdk-pluginbuild/Makefile
build/f_isoroot/f_qemupluginbuild/Makefile
build/f_isoroot/f_repobuild/Makefile
build/f_isoroot/f_vsperfpluginbuild/Makefile

index d867df0..f77a145 100644 (file)
@@ -120,10 +120,9 @@ $(ISOCACHE):
        # Repeat build up to ten times
        sudo ./fuel_build_loop
        cp /tmp/fuel-main/build/artifacts/fuel*.iso .
-
-       # Attempt to store ISO in cache to speed up the next
-       # build attempt. If cache is not enabled no harm is done.
-       $(MAKE) -f Makefile put-cache
+       # Store artifact in cache straight away if caching is enabled
+       # (no .cacheid will be present unless this is a cached build)
+       test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
 
 .PHONY: mount-origiso umount-origiso
 mount-origiso: $(ISOCACHE)
index 52d28fa..b5f0902 100755 (executable)
@@ -19,7 +19,6 @@ exit_trap() {
 trap exit_trap EXIT
 
 CACHETRANSPORT=${CACHETRANSPORT:-"curl --silent"}
-CACHEBASE=${CACHEBASE:-"file://${HOME}/cache"}
 CACHEMAXAGE=${CACHEMAXAGE:-$[14*24*3600]}
 CACHEDEBUG=${CACHEDEBUG:-1}
 
@@ -139,6 +138,12 @@ getcommitid() {
     fi
 }
 
+
+
+if [ -z "$CACHEBASE" ]; then
+  errorexit "CACHEBASE not set - exiting..."
+fi
+
 case $1 in
     getbiweek)
         if [ $# -ne 1 ]; then
index a99a426..71f2771 100644 (file)
@@ -51,6 +51,9 @@ release:.bgpvpnbuild
        $(REPOINFO) -r . > gitinfo_bgpvpnplugin.txt
        rm -rf fuel-plugin-bgpvpn
        touch .bgpvpnbuild
+       # Store artifact in cache straight away if caching is enabled
+       # (no .cacheid will be present unless this is a cached build)
+       test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
 
 #############################################################################
 # Cache operations - only used when building through ci/build.sh
index 18fbb9e..4ae81dd 100644 (file)
@@ -37,6 +37,9 @@ release:.odlbuild
        $(REPOINFO) -r . > gitinfo_odlplugin.txt
        rm -rf fuel-plugin-opendaylight
        touch .odlbuild
+       # Store artifact in cache straight away if caching is enabled
+       # (no .cacheid will be present unless this is a cached build)
+       test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
 
 #############################################################################
 # Cache operations - only used when building through ci/build.sh
index 0cf290c..9516e3d 100644 (file)
@@ -49,6 +49,9 @@ release:.onosbuild
        $(REPOINFO) -r . > gitinfo_onos-plugin.txt
        @rm -rf fuel-plugin-onos
        @touch .onosbuild
+       # Store artifact in cache straight away if caching is enabled
+       # (no .cacheid will be present unless this is a cached build)
+       test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
 
 #############################################################################
 # Cache operations - only used when building through ci/build.sh
index 700a93c..f89f8d9 100644 (file)
@@ -50,6 +50,9 @@ release:.ovsbuild
        $(REPOINFO) -r . > gitinfo_ovs-nsh-dpdk-plugin.txt
        @rm -rf fuel-plugin-ovs
        @touch .ovsbuild
+       # Store artifact in cache straight away if caching is enabled
+       # (no .cacheid will be present unless this is a cached build)
+       test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
 
 #############################################################################
 # Cache operations - only used when building through ci/build.sh
index 70fd224..a746873 100644 (file)
@@ -50,6 +50,9 @@ release:.ovsnfvbuild
        $(REPOINFO) -r . > gitinfo_ovsnfv-dpdk-plugin.txt
        @rm -rf fuel-plugin-ovsnfv
        @touch .ovsnfvbuild
+       # Store artifact in cache straight away if caching is enabled
+       # (no .cacheid will be present unless this is a cached build)
+       test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
 
 #############################################################################
 # Cache operations - only used when building through ci/build.sh
index 126e205..0f245ae 100644 (file)
@@ -50,6 +50,9 @@ release:.qemubuild
        $(REPOINFO) -r . > gitinfo_qemu-plugin.txt
        @rm -rf fuel-plugin-qemu
        @touch .qemubuild
+       # Store artifact in cache straight away if caching is enabled
+       # (no .cacheid will be present unless this is a cached build)
+       test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
 
 #############################################################################
 # Cache operations - only used when building through ci/build.sh
index 522722e..1fc7030 100644 (file)
@@ -45,6 +45,9 @@ nailgun:
        sudo su - -c /opt/fuel-createmirror-*/fuel-createmirror
        sudo chmod -R 755 /var/www/nailgun
        cp -Rp /var/www/nailgun .
+       # Store artifact in cache straight away if caching is enabled
+       # (no .cacheid will be present unless this is a cached build)
+       test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
 
 .PHONY: clean
 clean:
index ccf596a..c9653d7 100644 (file)
@@ -50,6 +50,9 @@ release:.vsperfbuild
        $(REPOINFO) -r . > gitinfo_vsperf-plugin.txt
        @rm -rf fuel-plugin-vsperf
        @touch .vsperfbuild
+       # Store artifact in cache straight away if caching is enabled
+       # (no .cacheid will be present unless this is a cached build)
+       test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
 
 #############################################################################
 # Cache operations - only used when building through ci/build.sh