[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
- [Qemu-devel] [PATCH v2 06/15] docker: Add quick test, (continued)
- [Qemu-devel] [PATCH v2 06/15] docker: Add quick test, Fam Zheng, 2016/02/16
- [Qemu-devel] [PATCH v2 05/15] docker: Add common.rc, Fam Zheng, 2016/02/16
- [Qemu-devel] [PATCH v2 07/15] docker: Add full test, Fam Zheng, 2016/02/16
- [Qemu-devel] [PATCH v2 08/15] docker: Add clang test, Fam Zheng, 2016/02/16
- [Qemu-devel] [PATCH v2 09/15] docker: Add mingw test, Fam Zheng, 2016/02/16
- [Qemu-devel] [PATCH v2 11/15] docs: Add text for tests/docker in build-system.txt, Fam Zheng, 2016/02/16
- [Qemu-devel] [PATCH v2 10/15] docker: Add travis tool, Fam Zheng, 2016/02/16
- [Qemu-devel] [PATCH v2 12/15] .gitignore: Ignore temporary dockerfile, Fam Zheng, 2016/02/16
- [Qemu-devel] [PATCH v2 13/15] MAINTAINERS: Add tests/docker, Fam Zheng, 2016/02/16
- [Qemu-devel] [PATCH v2 14/15] docker: Support interactive shell for debugging, Fam Zheng, 2016/02/16
- [Qemu-devel] [PATCH v2 15/15] tests/docker/Makefile.include: snapshot the src for docker,
Fam Zheng <=
- Re: [Qemu-devel] [PATCH v2 00/15] tests: Introducing docker tests, Fam Zheng, 2016/02/24