qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v2 15/15] tests/docker/Makefile.include: snapshot th


From: Fam Zheng
Subject: [Qemu-devel] [PATCH v2 15/15] tests/docker/Makefile.include: snapshot the src for docker
Date: Tue, 16 Feb 2016 20:39:59 +0800

From: Alex Bennée <address@hidden>

Instead of providing a live version of the source tree to the docker
container we snapshot it with git-archive. This ensure the tree is in a
pristine state for whatever operations the container is going to run on
them.

Uncommitted changes known to files known by the git index will be
included in the snapshot if there are any.

Signed-off-by: Alex Bennée <address@hidden>
[Generate an unique directory under /tmp/ - Fam Zheng]
Signed-off-by: Fam Zheng <address@hidden>
---
 tests/docker/Makefile.include | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index aaf7d23..7cc2130 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -2,7 +2,7 @@
 
 $(if $(quiet-command),,$(eval include $(SRC_PATH)/rules.mak))
 
-.PHONY: docker docker-test docker-clean docker-image
+.PHONY: docker docker-test docker-clean docker-image docker-qemu-src
 
 DOCKER_SUFFIX := .docker
 
@@ -16,6 +16,21 @@ DOCKER_TOOLS := travis
 
 TESTS ?= %
 IMAGES ?= %
+SRC_COPY := $(shell mktemp -u /tmp/qemu-src.XXXXX)
+
+.PHONY: $(SRC_COPY)
+
+$(SRC_COPY):
+       @mkdir -p $@
+       $(call quiet-command, \
+               mkdir -p $@ && (if git diff-index --quiet HEAD -- &>/dev/null; 
then \
+                       git archive -1 HEAD --format=tar.gz; \
+               else \
+                       git archive -1 $$(git stash create) --format=tar.gz; \
+               fi) | tar -xz -C $@, \
+               "  COPY SRC $@")
+
+docker-qemu-src: $(SRC_COPY)
 
 $(foreach i,$(DOCKER_IMAGES), \
        $(eval docker-image: docker-image-$i) \
@@ -23,8 +38,7 @@ $(foreach i,$(DOCKER_IMAGES), \
        $(eval .PHONY: docker-image-$i address@hidden) \
        $(foreach t,$(DOCKER_TESTS) $(DOCKER_TOOLS), \
                $(eval .PHONY: address@hidden) \
-               $(eval address@hidden: docker-image-$i) \
-               $(eval address@hidden: address@hidden) \
+               $(eval address@hidden: docker-image-$i address@hidden) \
                $(eval address@hidden: address@hidden) \
                $(eval docker-test: address@hidden) \
        ) \
@@ -73,7 +87,7 @@ docker-image-%:
 
 docker-run-%: CMD = $(shell echo '$@' | sed -e 
's/docker-run-\(address@hidden)@\(.*\)/\1/')
 docker-run-%: IMAGE = $(shell echo '$@' | sed -e 
's/docker-run-\(address@hidden)@\(.*\)/\2/')
-docker-run-%:
+docker-run-%: docker-qemu-src
        @if test -z "$(IMAGE)" || test -z "$(CMD)"; \
                then echo "Invalid target"; exit 1; \
        fi
-- 
2.4.3




reply via email to

[Prev in Thread] Current Thread [Next in Thread]