diff mbox

[v6,0/8] docker: Support building qemu-user powered docker test images

Message ID 87k2gilzkc.fsf@linaro.org (mailing list archive)
State New, archived
Headers show

Commit Message

Alex Bennée July 19, 2016, 9:58 a.m. UTC
Fam Zheng <famz@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:



>
> 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
diff mbox

Patch

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