mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
![Sebastiaan van Stijn](/assets/img/avatar_default.png)
This removes all the installation steps for docker-py from the Dockerfile, and instead builds the upstream Dockerfile, and runs docker-py tests in a container. To test; ``` make test-docker-py ... Removing bundles/ ---> Making bundle: dynbinary (in bundles/dynbinary) Building: bundles/dynbinary-daemon/dockerd-dev Created binary: bundles/dynbinary-daemon/dockerd-dev ---> Making bundle: test-docker-py (in bundles/test-docker-py) ---> Making bundle: .integration-daemon-start (in bundles/test-docker-py) Using test binary docker Starting dockerd INFO: Waiting for daemon to start... . INFO: Building docker-sdk-python3:3.7.0... sha256:686428ae28479e9b5c8fdad1cadc9b7a39b462e66bd13a7e35bd79c6a152a402 INFO: Starting docker-py tests... ============================= test session starts ============================== platform linux -- Python 3.6.8, pytest-4.1.0, py-1.8.0, pluggy-0.9.0 rootdir: /src, inifile: pytest.ini plugins: timeout-1.3.3, cov-2.6.1 collected 359 items tests/integration/api_build_test.py .......s.... .... ``` Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
49 lines
1.6 KiB
Bash
49 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
source hack/make/.integration-test-helpers
|
|
|
|
# The commit or tag to use for testing
|
|
# TODO docker 17.06 cli client used in CI fails to build using a sha;
|
|
# unable to prepare context: unable to 'git clone' to temporary context directory: error fetching: error: no such remote ref ead0bb9e08c13dd3d1712759491eee06bf5a5602
|
|
#: exit status 128
|
|
: ${DOCKER_PY_COMMIT:=4.0.2}
|
|
(
|
|
bundle .integration-daemon-start
|
|
|
|
docker_host_scheme=`echo "${DOCKER_HOST}" | cut -d: -f1 -`
|
|
|
|
case "${docker_host_scheme}" in
|
|
unix)
|
|
# trim the tcp:// scheme, and bind-mount the docker socket into the container
|
|
run_opts="-v ${DOCKER_HOST#unix://}:/var/run/docker.sock"
|
|
;;
|
|
|
|
tcp)
|
|
# run container in host-mode networking so that it can connect to the
|
|
# daemon from the current networking namespace (e.g., to connect to localhost)
|
|
run_opts="--network=host -e DOCKER_HOST=${DOCKER_HOST}"
|
|
;;
|
|
|
|
*)
|
|
echo "WARN: Skipping test-docker-py: connecting to docker daemon using ${docker_host_scheme} (${DOCKER_HOST}) not supported"
|
|
bundle .integration-daemon-stop
|
|
return 0
|
|
esac
|
|
|
|
docker_py_image="docker-sdk-python3:${DOCKER_PY_COMMIT}"
|
|
if ! docker image inspect "dockerPyImage" &> /dev/null; then
|
|
echo INFO: Building ${docker_py_image}...
|
|
(
|
|
[ -n "${TESTDEBUG}" ] && set -x
|
|
exec docker build --quiet -t ${docker_py_image} -f tests/Dockerfile "https://github.com/docker/docker-py.git#${DOCKER_PY_COMMIT}"
|
|
)
|
|
fi
|
|
|
|
echo INFO: Starting docker-py tests...
|
|
(
|
|
[ -n "${TESTDEBUG}" ] && set -x
|
|
exec docker run -t --rm ${run_opts} ${docker_py_image} py.test tests/integration
|
|
)
|
|
bundle .integration-daemon-stop
|
|
) 2>&1 | tee -a "$DEST/test.log"
|