From ec307077e542fd290701a871fedc7f58db37712c Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Tue, 9 Aug 2016 18:40:22 +0200 Subject: build: ISO refactor, use docker, enable cache Previously, Armband Makefile used to call Fuel@OPNFV Makefile target , instead of , which resulted in bypassing using Docker for ISO building completely. Switch to Makefile target, hence bringing back Docker as a build container. This change justifies moving make variables to a separate spec file, armband.mk. While at it, enable caching of builds. This requires Jenkins bash scripts to be updated for the ISO build job, done in [1]. JIRA: ARMBAND-56 [1] https://gerrit.opnfv.org/gerrit/#/c/18453/ CHANGES: - all: release (was all: build) - Common make targets now depend on submodules-init; - clean-build and clean-docker make targets have been replaced by: make clean, make deepclean; FIXME: These issues should be fixed later: - (optional) trim local repo paths from gitinfo files - only account for armband submodules in cache fingerprints; - identify size mismatch culprit Change-Id: I7d73409be44983fa21d4c09d2e07b87a33231e03 Signed-off-by: Alexandru Avadanii --- ...epo-mirror-Allow-multi-arch-local-mirrors.patch | 63 +++++++++++++++++++--- 1 file changed, 56 insertions(+), 7 deletions(-) (limited to 'patches/opnfv-fuel/0036-repo-mirror-Allow-multi-arch-local-mirrors.patch') diff --git a/patches/opnfv-fuel/0036-repo-mirror-Allow-multi-arch-local-mirrors.patch b/patches/opnfv-fuel/0036-repo-mirror-Allow-multi-arch-local-mirrors.patch index d48e9f07..45ebb4e9 100644 --- a/patches/opnfv-fuel/0036-repo-mirror-Allow-multi-arch-local-mirrors.patch +++ b/patches/opnfv-fuel/0036-repo-mirror-Allow-multi-arch-local-mirrors.patch @@ -13,20 +13,23 @@ independent (which is true so far). [ Alexandru Avadanii ] Reworked for applying on top of fuel@OPNFV. +Pass UBUNTU_ARCH to Docker containers. Signed-off-by: Stanislaw Kardach Signed-off-by: Alexandru Avadanii --- build/Makefile | 1 + - build/repo-multi-arch-local-mirrors.patch | 45 +++++++++++++++++++++++++++++++ - 2 files changed, 46 insertions(+) + build/docker/Dockerfile | 2 +- + build/docker/runcontext | 8 ++++- + build/repo-multi-arch-local-mirrors.patch | 59 +++++++++++++++++++++++++++++++ + 4 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 build/repo-multi-arch-local-mirrors.patch diff --git a/build/Makefile b/build/Makefile -index 2d33aa4..0490bab 100644 +index 95b1487..829a231 100644 --- a/build/Makefile +++ b/build/Makefile -@@ -139,6 +139,7 @@ $(ISOCACHE): +@@ -135,6 +135,7 @@ $(ISOCACHE): cd /tmp/fuel-main && git am $(TOPDIR)/bootstrap_admin_node.sh.patch cd /tmp/fuel-main && git am $(TOPDIR)/isolinux.cfg.patch cd /tmp/fuel-main/build/repos/fuel-nailgun && git am $(TOPDIR)/Mark-Intel-82599-10-Gigabit-NIC-as-DPDK-capable.patch @@ -34,12 +37,44 @@ index 2d33aa4..0490bab 100644 # Repeat build up to three times sudo -E ./fuel_build_loop cp /tmp/fuel-main/build/artifacts/fuel*.iso . +diff --git a/build/docker/Dockerfile b/build/docker/Dockerfile +index 1bb56b7..b38ea4c 100644 +--- a/build/docker/Dockerfile ++++ b/build/docker/Dockerfile +@@ -30,7 +30,7 @@ RUN echo "Defaults env_keep += \"ftp_proxy http_proxy https_proxy no_proxy RSYNC + # Keeping PWD is needed to build as root + RUN echo "Defaults env_keep += \"PWD\"" > /etc/sudoers.d/keep-pwd + # Keeping variables for ISO build +-RUN echo "Defaults env_keep += \"MIRROR_UBUNTU MIRROR_UBUNTU_ROOT MIRROR_MOS_UBUNTU MIRROR_MOS_UBUNTU_ROOT MIRROR_FUEL LATEST_TARGET_UBUNTU\"" > /etc/sudoers.d/keep-mos ++RUN echo "Defaults env_keep += \"MIRROR_UBUNTU MIRROR_UBUNTU_ROOT MIRROR_MOS_UBUNTU MIRROR_MOS_UBUNTU_ROOT MIRROR_FUEL LATEST_TARGET_UBUNTU UBUNTU_ARCH\"" > /etc/sudoers.d/keep-mos + RUN chmod 0440 /etc/sudoers.d/open-sudo + RUN chmod 0440 /etc/sudoers.d/keep-proxies + RUN chmod 0440 /etc/sudoers.d/keep-pwd +diff --git a/build/docker/runcontext b/build/docker/runcontext +index 9f07776..daad663 100755 +--- a/build/docker/runcontext ++++ b/build/docker/runcontext +@@ -111,7 +111,13 @@ if [ -n "$CACHEBASE" ]; then + fi + fi + +-RUN_CONTEXT_OPT="--cidfile $CID_FILE --privileged=true --rm -e HOME=$HOME -e CACHEDEBUG -e CACHETRANSPORT -e CACHEMAXAGE -e CACHEBASE -e BUILD_FUEL_PLUGINS -e MIRROR_UBUNTU -e MIRROR_UBUNTU_ROOT -e MIRROR_MOS_UBUNTU -e MIRROR_MOS_UBUNTU_ROOT -e MIRROR_FUEL -e LATEST_TARGET_UBUNTU -u $USER_ID:$GROUP_ID -w $PWD -v $GITROOT:$GITROOT -v /sys/fs/cgroup:/sys/fs/cgroup:ro $CACHEMOUNT" ++RUN_CONTEXT_OPT="--cidfile $CID_FILE --privileged=true --rm \ ++ -e HOME=$HOME -e CACHEDEBUG -e CACHETRANSPORT -e CACHEMAXAGE -e CACHEBASE \ ++ -e BUILD_FUEL_PLUGINS -e MIRROR_UBUNTU -e MIRROR_UBUNTU_ROOT \ ++ -e MIRROR_MOS_UBUNTU -e MIRROR_MOS_UBUNTU_ROOT -e MIRROR_FUEL \ ++ -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH \ ++ -u $USER_ID:$GROUP_ID -w $PWD \ ++ -v $GITROOT:$GITROOT -v /sys/fs/cgroup:/sys/fs/cgroup:ro $CACHEMOUNT" + + # Passing "debug" puts up an interactive bash shell + if [ "$1" == "debug" ]; then diff --git a/build/repo-multi-arch-local-mirrors.patch b/build/repo-multi-arch-local-mirrors.patch new file mode 100644 -index 0000000..c3ff26a +index 0000000..d404287 --- /dev/null +++ b/build/repo-multi-arch-local-mirrors.patch -@@ -0,0 +1,45 @@ +@@ -0,0 +1,59 @@ +From: Stanislaw Kardach +Date: Thu, 25 Feb 2016 13:31:19 +0100 +Subject: repo mirror: Allow multi-arch local mirrors @@ -57,7 +92,8 @@ index 0000000..c3ff26a +--- + mirror/ubuntu/module.mk | 2 +- + sandbox.mk | 2 +- -+ 2 files changed, 2 insertions(+), 2 deletions(-) ++ config.mk | 2 +- ++ 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/mirror/ubuntu/module.mk b/mirror/ubuntu/module.mk +index 7a9466e..fe1ada2 100644 @@ -85,3 +121,16 @@ index 0000000..c3ff26a + if [ -e $(SANDBOX_UBUNTU)/etc/resolv.conf ]; then sudo cp -a $(SANDBOX_UBUNTU)/etc/resolv.conf $(SANDBOX_UBUNTU)/etc/resolv.conf.orig; fi + sudo cp /etc/resolv.conf $(SANDBOX_UBUNTU)/etc/resolv.conf + if [ -e $(SANDBOX_UBUNTU)/etc/hosts ]; then sudo cp -a $(SANDBOX_UBUNTU)/etc/hosts $(SANDBOX_UBUNTU)/etc/hosts.orig; fi ++diff --git a/config.mk b/config.mk ++index 74ee039..45a3b30 100644 ++--- a/config.mk +++++ b/config.mk ++@@ -49,7 +49,7 @@ UBUNTU_MINOR:=04 ++ UBUNTU_RELEASE_NUMBER:=$(UBUNTU_MAJOR).$(UBUNTU_MINOR) ++ UBUNTU_KERNEL_FLAVOR?=lts-trusty ++ UBUNTU_NETBOOT_FLAVOR?=netboot ++-UBUNTU_ARCH:=amd64 +++UBUNTU_ARCH?=amd64 ++ UBUNTU_IMAGE_RELEASE:=$(UBUNTU_MAJOR)$(UBUNTU_MINOR) ++ SEPARATE_IMAGES?=/boot,ext2 /,ext4 ++ -- cgit 1.2.3-korg