Fam Zheng <f...@redhat.com> writes: > v6: A few tweaks to make this more mergable. Including: > - Add and catch magic pre script exit code "3" to allow skipping image. > - Tweak debian-bootstrap.pre to return '3' when appropriate (It should > still return 1 for debootstrap command failure). > - Fix "realpath" to "readlink -e" to be compatible with centos6. > - Add the last patch to skip test if the image is skipped by .pre. > > Alex, if this looks good to you, I can send a pull req today.
If you could apply the following changes to the appropriate patches I think we are good to go: diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 2bb8a51..d85f50f 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -46,7 +46,8 @@ docker-image: ${DOCKER_TARGETS} docker-image-%: $(DOCKER_FILES_DIR)/%.docker $(call quiet-command,\ $(SRC_PATH)/tests/docker/docker.py build qemu:$* $< \ - $(if $V,,--quiet) $(if $(NOCACHE),--no-cache),\ + $(if $V,,--quiet) $(if $(NOCACHE),--no-cache) \ + $(if $(EXECUTABLE),--include-executable=$(EXECUTABLE)),\ " BUILD $*") # Expand all the pre-requistes for each docker image and test combination @@ -95,6 +96,7 @@ docker: @echo ' DEBUG=1 Stop and drop to shell in the created container' @echo ' before running the command.' @echo ' NOCACHE=1 Ignore cache when build images.' + @echo ' EXECUTABLE=<path> Include executable in image.' docker-run-%: CMD = $(shell echo '$@' | sed -e 's/docker-run-\([^@]*\)@\(.*\)/\1/') docker-run-%: IMAGE = $(shell echo '$@' | sed -e 's/docker-run-\([^@]*\)@\(.*\)/\2/') diff --git a/tests/docker/docker.py b/tests/docker/docker.py index fd162c0..40bda9d 100755 --- a/tests/docker/docker.py +++ b/tests/docker/docker.py @@ -238,7 +238,7 @@ class BuildCommand(SubCommand): if rc == 3: print "Skip" return 0 - else: + elif rc != 0: print "%s exited with code %d" % (docker_pre, rc) return 1 diff --git a/tests/docker/dockerfiles/debian-bootstrap.pre b/tests/docker/dockerfiles/debian-bootstrap.pre index 55850be..5d9c8d5 100755 --- a/tests/docker/dockerfiles/debian-bootstrap.pre +++ b/tests/docker/dockerfiles/debian-bootstrap.pre @@ -81,7 +81,7 @@ else fi fi -echo "Building a rootfs using ${FAKEROOT} and ${DEBOOTSTRAP}" +echo "Building a rootfs using ${FAKEROOT} and ${DEBOOTSTRAP} ${DEB_ARCH}/${DEB_TYPE}" ${FAKEROOT} ${DEBOOTSTRAP} --variant=buildd --foreign --arch=$DEB_ARCH $DEB_TYPE . http://httpredir.debian.org/debian || exit 1 exit 0 > > Alex Bennée (5): > tests/docker/docker.py: docker_dir outside build > tests/docker/docker.py: support --include-executable > tests/docker/docker.py: check and run .pre script > tests/docker/dockerfiles: new debian-bootstrap.docker > tests/docker/docker.py: add update operation > > Fam Zheng (3): > docker: More sensible run script > docker: Fix exit code if $CMD failed > docker: Don't start a container that doesn't exist > > tests/docker/Makefile.include | 9 +- > tests/docker/docker.py | 150 > +++++++++++++++++++++-- > tests/docker/dockerfiles/debian-bootstrap.docker | 21 ++++ > tests/docker/dockerfiles/debian-bootstrap.pre | 87 +++++++++++++ > tests/docker/run | 16 ++- > 5 files changed, 267 insertions(+), 16 deletions(-) > create mode 100644 tests/docker/dockerfiles/debian-bootstrap.docker > create mode 100755 tests/docker/dockerfiles/debian-bootstrap.pre -- Alex Bennée