From 39e2e6c3b39914bff070e717983904500248b1a6 Mon Sep 17 00:00:00 2001 From: Ivan Mikushin Date: Sat, 19 Sep 2015 20:43:00 +0500 Subject: [PATCH] speed up the full build by swapping lzma with gzip if run with --dev flag --- Makefile | 5 +++-- Makefile.docker | 3 ++- build.sh | 13 ++++++++++++- scripts/ci | 2 +- scripts/mk-initrd.sh | 8 +++++++- scripts/run | 2 +- .../assets/test_02/test-custom-kernel.sh | 2 +- 7 files changed, 27 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 97d39da4..9d408dde 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ include build.conf FORCE_PULL := 0 +DEV_BUILD := 0 compile: bin/rancheros @@ -24,7 +25,7 @@ bin/rancheros: ros-build-image build-all: ros-build-image - ./scripts/docker-run.sh make -f Makefile.docker FORCE_PULL=$(FORCE_PULL) $@ + ./scripts/docker-run.sh make -f Makefile.docker DEV_BUILD=$(DEV_BUILD) FORCE_PULL=$(FORCE_PULL) $@ mkdir -p bin dist docker cp ros-build:/go/src/github.com/rancherio/os/bin/rancheros bin/ @@ -32,7 +33,7 @@ build-all: ros-build-image installer: ros-build-image - ./scripts/docker-run.sh --rm make -f Makefile.docker FORCE_PULL=$(FORCE_PULL) $@ + ./scripts/docker-run.sh --rm make -f Makefile.docker DEV_BUILD=$(DEV_BUILD) FORCE_PULL=$(FORCE_PULL) $@ version: diff --git a/Makefile.docker b/Makefile.docker index e162f925..d640d46d 100644 --- a/Makefile.docker +++ b/Makefile.docker @@ -1,5 +1,6 @@ include build.conf FORCE_PULL := 0 +DEV_BUILD := 0 bin/rancheros: @@ -33,7 +34,7 @@ $(BUILD)/images.tar: bin/rancheros $(DIST)/artifacts/initrd: bin/rancheros assets/docker $(BUILD)/kernel/ $(BUILD)/images.tar mkdir -p $(dir $@) - DFS_IMAGE=$(DFS_IMAGE) ./scripts/mk-initrd.sh + DFS_IMAGE=$(DFS_IMAGE) DEV_BUILD=$(DEV_BUILD) ./scripts/mk-initrd.sh $(DIST)/artifacts/rancheros.iso: minimal diff --git a/build.sh b/build.sh index 454369be..4bcfcbfb 100755 --- a/build.sh +++ b/build.sh @@ -1,6 +1,17 @@ #!/bin/bash set -e -make all +if [ "$1" != "--dev" ]; then + echo + echo Running \"production\" build. Will use lzma to compress initrd, which is somewhat slow... + echo Ctrl+C if you don\'t want this. + echo + echo For \"developer\" builds, run ./build.sh --dev + echo + make all +else + make DEV_BUILD=1 all +fi + ls -lh dist/artifacts diff --git a/scripts/ci b/scripts/ci index 2ed770fd..5a46cea3 100755 --- a/scripts/ci +++ b/scripts/ci @@ -9,4 +9,4 @@ fi docker build -t ros-build-base -f Dockerfile.build-base . docker build -t ros-build -f Dockerfile.build . -./scripts/docker-run.sh --name ros-ci make -f Makefile.docker minimal integration-tests +./scripts/docker-run.sh --name ros-ci make -f Makefile.docker DEV_BUILD=1 minimal integration-tests diff --git a/scripts/mk-initrd.sh b/scripts/mk-initrd.sh index 2bfb5a33..fc6eaa24 100755 --- a/scripts/mk-initrd.sh +++ b/scripts/mk-initrd.sh @@ -27,4 +27,10 @@ docker export ${DFS} | tar xvf - -C ${INITRD_DIR} --exclude=usr/bin/dockerlaunc --exclude=usr/libexec/git-core \ usr -cd ${INITRD_DIR} && find | cpio -H newc -o | lzma -c > ${DIST}/artifacts/initrd +if [ "$DEV_BUILD" == "1" ]; then + COMPRESS=gzip +else + COMPRESS=lzma +fi + +cd ${INITRD_DIR} && find | cpio -H newc -o | ${COMPRESS} > ${DIST}/artifacts/initrd diff --git a/scripts/run b/scripts/run index c0c63c5e..518e4635 100755 --- a/scripts/run +++ b/scripts/run @@ -84,7 +84,7 @@ if [ "$REBUILD" == "1" ]; then if [ ! -d ${INITRD_TMP} ]; then mkdir -p ${INITRD_TMP} pushd ${INITRD_TMP} - xz -dc ${INITRD} | cpio -idmv + xz -dfc ${INITRD} | gunzip -f | cpio -idm popd fi diff --git a/tests/integration/assets/test_02/test-custom-kernel.sh b/tests/integration/assets/test_02/test-custom-kernel.sh index 348ca125..72cd3844 100755 --- a/tests/integration/assets/test_02/test-custom-kernel.sh +++ b/tests/integration/assets/test_02/test-custom-kernel.sh @@ -5,6 +5,6 @@ cd $(dirname $0)/../../../.. cp ./tests/integration/assets/test_02/build.conf ./ -make -f Makefile.docker minimal +make -f Makefile.docker DEV_BUILD=1 minimal exec ./scripts/run --qemu --no-rebuild --fresh