summaryrefslogtreecommitdiffstats
path: root/fuel/build/Makefile
diff options
context:
space:
mode:
authorJonas Bjurel <jonas.bjurel@ericsson.com>2015-03-12 15:18:06 +0100
committerJonas Bjurel <jonas.bjurel@ericsson.com>2015-03-17 19:17:20 +0100
commitdf6c1db2695030b1ba68184bac9aab9fb2d41e71 (patch)
tree2b5c57c83fdc15e23cf19ae92d0581421ebeedc8 /fuel/build/Makefile
parented60ed6299ddae50e1269434adc35ce686a07e97 (diff)
*** FIRST VERSION OF CI BUILD SCRIPT ***
- Provides build cache management to a remote location - Provides automatic cashe repopulation - See /fuel/ci/README - Rebased to master - Bug around cache handling fixed - New option -r introduced to invoke external script/program instead of standard http(s)/fttp get and put, eg. scripts or programs to integrate with dropbox, or similar. The script needs to anheaer to curl argument list. - Stefan Berg's comments implemented - Fatih Degirmenci's comments implemented with one exemption: the revision state .iso naming convention still remains the same - we need to discuss this. With the implementation of Fatih's comments the build.sh argument structure is slightly changed, please see ./build.sh -h TODO: - Further testing - Finalize cache invalidation logic - Make refactoring JIRA: Change-Id: I4efdbdd10f726c0a3229849a63040b6d2702db5c Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
Diffstat (limited to 'fuel/build/Makefile')
-rw-r--r--fuel/build/Makefile64
1 files changed, 41 insertions, 23 deletions
diff --git a/fuel/build/Makefile b/fuel/build/Makefile
index 8e90fcc..e7cb6e7 100644
--- a/fuel/build/Makefile
+++ b/fuel/build/Makefile
@@ -13,24 +13,36 @@
#
SHELL = /bin/bash
-include config.mk
+#Input args
+export UNIT_TEST = FALSE
+export INTERACTIVE = TRUE
+export ISOSRC = file:$(shell pwd)/fuel-6.0.1.iso
+export ISOCACHE = $(shell pwd)/$(shell basename $(ISOSRC))
+export PRODNO = "OPNFV_BGS"
+export REVSTATE = "P0000"
+export NEWISO = $(shell pwd)/release/opnfv-${REVSTATE}.iso
+
+# Note! Invoke with "make REVSTATE=RXXXX all" to make release build!
+# Invoke with ICOCACHE=/full/path/to/iso if cached ISO is in non-standard location.
-export BUILD_BASE = $(shell pwd)
+#Build variables
+export BUILD_BASE := $(shell pwd)
export DEB_DEST := $(BUILD_BASE)/release/packages/ubuntu/pool/main
export PUPPET_DEST := $(BUILD_BASE)/release/puppet/modules
-
-ISOSRC = file:$(shell pwd)/fuel-6.0.1.iso
-ISOCACHE = $(shell pwd)/$(shell basename $(ISOSRC))
-PRODNO = "OPNFV_BGS"
-REVSTATE = "P0000"
-NEWISO = $(shell pwd)/release/opnfv-${REVSTATE}.iso
+export CACHE_DIR := $(BUILD_BASE)/cache
+export VERSION_FILE := $(BUILD_BASE)/.versions
DOCKERIMG = opnfv.org/ubuntu-builder:14.04
-# Note! Invoke with "make REVSTATE=RXXXX iso" to make release build!
-# Invoke with ICOCACHE=/full/path/to/iso if cached ISO is in non-standard location.
+export TOPDIR := $(shell pwd)
+
#
# END of variables to customize
#############################################################################
-export TOPDIR := $(shell pwd)
+
+#Include definitions
+include config.mk
+include cache.mk
+
+
ORIGDIR := $(TOPDIR)/origiso
SUBDIRS := f_isoroot
@@ -39,17 +51,17 @@ SUBDIRS += f_osnaily
SUBDIRS += f_l23network
SUBDIRS += f_resolvconf
SUBDIRS += f_ntp
-#SUBDIRS += f_gif
-#SUBDIRS += f_libnss
-#SUBDIRS += f_libpcs
-#SUBDIRS += f_libxt
-#SUBDIRS += f_comm_java
-#SUBDIRS += f_ca_cert
-#SUBDIRS += f_atk_wrap
-#SUBDIRS += f_jre_head
-#SUBDIRS += f_jre
-#SUBDIRS += f_java
-#SUBDIRS += f_odl
+SUBDIRS += f_gif
+SUBDIRS += f_libnss
+SUBDIRS += f_libpcs
+SUBDIRS += f_libxt
+SUBDIRS += f_comm_java
+SUBDIRS += f_ca_cert
+SUBDIRS += f_atk_wrap
+SUBDIRS += f_jre_head
+SUBDIRS += f_jre
+SUBDIRS += f_java
+SUBDIRS += f_odl
@@ -62,6 +74,9 @@ SUBCLEAN = $(addsuffix .clean,$(SUBDIRS))
.PHONY: all
all:
@docker version >/dev/null 2>&1 || (echo 'No Docker installation available'; exit 1)
+ @echo "Versions of cached build results built by" $(shell hostname) "at" $(shell date -u) > $(BUILD_BASE)/.versions
+ @echo "cache.mk" $(shell md5sum $(BUILD_BASE)/cache.mk | cut -f1 -d " ") >> $(BUILD_BASE)/.versions
+ @echo "config.mk" $(shell md5sum $(BUILD_BASE)/config.mk | cut -f1 -d " ") >> $(BUILD_BASE)/.versions
@make -C docker
@docker/runcontext $(DOCKERIMG) $(MAKE) $(MAKEFLAGS) iso
@@ -69,6 +84,8 @@ $(ISOCACHE):
# Clone Fuel to non-persistent location and build
cd /tmp && git clone $(FUEL_MAIN_REPO)
cd /tmp/fuel-main && git checkout $(FUEL_MAIN_TAG)
+ @echo "fuel" `git -C /tmp/fuel-main show | grep commit | rev | cut -f1 -d " "` >> ${BUILD_BASE}/.versions
+
# Setup cgroups for docker-in-docker
sudo /root/enable_dockerx2
# Patch to fix race condition when doing "Docker-in-Docker" build
@@ -120,7 +137,7 @@ build-clean: $(SUBCLEAN)
@rm -f $(NEWISO)
.PHONY: clean $(SUBCLEAN)
-clean: prepare $(SUBCLEAN)
+clean: prepare $(SUBCLEAN)
$(MAKE) -C patch-packages -f Makefile clean
$(MAKE) -C opendaylight -f Makefile clean
@rm -f *.iso
@@ -128,6 +145,7 @@ clean: prepare $(SUBCLEAN)
@rm -Rf newiso
@rm -f f_odl
@rm -f $(NEWISO)
+ @rm -f $(BUILD_BASE)/.versions
$(SUBCLEAN): %.clean:
$(MAKE) -C $* -f Makefile clean