diff options
author | Jonas Bjurel <jonas.bjurel@ericsson.com> | 2015-03-12 15:18:06 +0100 |
---|---|---|
committer | Jonas Bjurel <jonas.bjurel@ericsson.com> | 2015-03-17 19:17:20 +0100 |
commit | df6c1db2695030b1ba68184bac9aab9fb2d41e71 (patch) | |
tree | 2b5c57c83fdc15e23cf19ae92d0581421ebeedc8 /fuel/build/Makefile | |
parent | ed60ed6299ddae50e1269434adc35ce686a07e97 (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/Makefile | 64 |
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 |