diff --git a/Jenkinsfile b/Jenkinsfile index c548492b..1323f4b8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -9,7 +9,7 @@ def dockerVersions = [ "17.06.2-ce", // Latest EE "17.12.1-ce", // Latest CE stable "18.02.0-ce", // Latest CE edge - "18.03.0-ce-rc1" // Latest CE RC + "18.03.0-ce-rc4" // Latest CE RC ] def buildImage = { name, buildargs, pyTag -> @@ -64,15 +64,18 @@ def runTests = { Map settings -> checkout(scm) def dindContainerName = "dpy-dind-\$BUILD_NUMBER-\$EXECUTOR_NUMBER-${pythonVersion}-${dockerVersion}" def testContainerName = "dpy-tests-\$BUILD_NUMBER-\$EXECUTOR_NUMBER-${pythonVersion}-${dockerVersion}" + def testNetwork = "dpy-testnet-\$BUILD_NUMBER-\$EXECUTOR_NUMBER-${pythonVersion}-${dockerVersion}" try { - sh """docker run -d --name ${dindContainerName} -v /tmp --privileged \\ + sh """docker network create ${testNetwork}""" + sh """docker run -d --name ${dindContainerName} -v /tmp --privileged --network ${testNetwork} \\ dockerswarm/dind:${dockerVersion} dockerd -H tcp://0.0.0.0:2375 """ sh """docker run \\ - --name ${testContainerName} --volumes-from ${dindContainerName} \\ - -e 'DOCKER_HOST=tcp://docker:2375' \\ + --name ${testContainerName} \\ + -e "DOCKER_HOST=tcp://${dindContainerName}:2375" \\ -e 'DOCKER_TEST_API_VERSION=${apiVersion}' \\ - --link=${dindContainerName}:docker \\ + --network ${testNetwork} \\ + --volumes-from ${dindContainerName} \\ ${testImage} \\ py.test -v -rxs tests/integration """ @@ -80,6 +83,7 @@ def runTests = { Map settings -> sh """ docker stop ${dindContainerName} ${testContainerName} docker rm -vf ${dindContainerName} ${testContainerName} + docker network rm ${testNetwork} """ } } diff --git a/Makefile b/Makefile index f4919939..434d40e1 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ all: test .PHONY: clean clean: - -docker rm -f dpy-dind-py2 dpy-dind-py3 + -docker rm -f dpy-dind-py2 dpy-dind-py3 dpy-dind-certs dpy-dind-ssl find -name "__pycache__" | xargs rm -rf .PHONY: build @@ -44,41 +44,47 @@ integration-test-py3: build-py3 TEST_API_VERSION ?= 1.35 TEST_ENGINE_VERSION ?= 17.12.0-ce +.PHONY: setup-network +setup-network: + docker network inspect dpy-tests || docker network create dpy-tests + .PHONY: integration-dind integration-dind: integration-dind-py2 integration-dind-py3 .PHONY: integration-dind-py2 -integration-dind-py2: build +integration-dind-py2: build setup-network docker rm -vf dpy-dind-py2 || : - docker run -d --name dpy-dind-py2 --privileged dockerswarm/dind:${TEST_ENGINE_VERSION} dockerd\ - -H tcp://0.0.0.0:2375 --experimental - docker run -t --rm --env="DOCKER_HOST=tcp://docker:2375" --env="DOCKER_TEST_API_VERSION=${TEST_API_VERSION}"\ - --link=dpy-dind-py2:docker docker-sdk-python py.test tests/integration + docker run -d --network dpy-tests --name dpy-dind-py2 --privileged\ + dockerswarm/dind:${TEST_ENGINE_VERSION} dockerd -H tcp://0.0.0.0:2375 --experimental + docker run -t --rm --env="DOCKER_HOST=tcp://dpy-dind-py2:2375" --env="DOCKER_TEST_API_VERSION=${TEST_API_VERSION}"\ + --network dpy-tests docker-sdk-python py.test tests/integration docker rm -vf dpy-dind-py2 .PHONY: integration-dind-py3 -integration-dind-py3: build-py3 +integration-dind-py3: build-py3 setup-network docker rm -vf dpy-dind-py3 || : - docker run -d --name dpy-dind-py3 --privileged dockerswarm/dind:${TEST_ENGINE_VERSION} dockerd\ - -H tcp://0.0.0.0:2375 --experimental - docker run -t --rm --env="DOCKER_HOST=tcp://docker:2375" --env="DOCKER_TEST_API_VERSION=${TEST_API_VERSION}"\ - --link=dpy-dind-py3:docker docker-sdk-python3 py.test tests/integration + docker run -d --network dpy-tests --name dpy-dind-py3 --privileged\ + dockerswarm/dind:${TEST_ENGINE_VERSION} dockerd -H tcp://0.0.0.0:2375 --experimental + docker run -t --rm --env="DOCKER_HOST=tcp://dpy-dind-py3:2375" --env="DOCKER_TEST_API_VERSION=${TEST_API_VERSION}"\ + --network dpy-tests docker-sdk-python3 py.test tests/integration docker rm -vf dpy-dind-py3 .PHONY: integration-dind-ssl integration-dind-ssl: build-dind-certs build build-py3 + docker rm -vf dpy-dind-certs dpy-dind-ssl || : docker run -d --name dpy-dind-certs dpy-dind-certs docker run -d --env="DOCKER_HOST=tcp://localhost:2375" --env="DOCKER_TLS_VERIFY=1"\ --env="DOCKER_CERT_PATH=/certs" --volumes-from dpy-dind-certs --name dpy-dind-ssl\ - -v /tmp --privileged dockerswarm/dind:${TEST_ENGINE_VERSION} dockerd --tlsverify\ - --tlscacert=/certs/ca.pem --tlscert=/certs/server-cert.pem\ + --network dpy-tests --network-alias docker -v /tmp --privileged\ + dockerswarm/dind:${TEST_ENGINE_VERSION}\ + dockerd --tlsverify --tlscacert=/certs/ca.pem --tlscert=/certs/server-cert.pem\ --tlskey=/certs/server-key.pem -H tcp://0.0.0.0:2375 --experimental docker run -t --rm --volumes-from dpy-dind-ssl --env="DOCKER_HOST=tcp://docker:2375"\ --env="DOCKER_TLS_VERIFY=1" --env="DOCKER_CERT_PATH=/certs" --env="DOCKER_TEST_API_VERSION=${TEST_API_VERSION}"\ - --link=dpy-dind-ssl:docker docker-sdk-python py.test tests/integration + --network dpy-tests docker-sdk-python py.test tests/integration docker run -t --rm --volumes-from dpy-dind-ssl --env="DOCKER_HOST=tcp://docker:2375"\ --env="DOCKER_TLS_VERIFY=1" --env="DOCKER_CERT_PATH=/certs" --env="DOCKER_TEST_API_VERSION=${TEST_API_VERSION}"\ - --link=dpy-dind-ssl:docker docker-sdk-python3 py.test tests/integration + --network dpy-tests docker-sdk-python3 py.test tests/integration docker rm -vf dpy-dind-ssl dpy-dind-certs .PHONY: flake8