This clones and run the integration tests for docker-py master as part
of the integration tests created on master. docker-py hits the api
directly and should be a good way to identify regressions in the api.
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
... | ... |
@@ -56,7 +56,7 @@ docs-release: docs-build |
56 | 56 |
$(DOCKER_RUN_DOCS) -e OPTIONS -e BUILD_ROOT "$(DOCKER_DOCS_IMAGE)" ./release.sh |
57 | 57 |
|
58 | 58 |
test: build |
59 |
- $(DOCKER_RUN_DOCKER) hack/make.sh binary cross test-unit test-integration test-integration-cli |
|
59 |
+ $(DOCKER_RUN_DOCKER) hack/make.sh binary cross test-unit test-integration test-integration-cli test-docker-py |
|
60 | 60 |
|
61 | 61 |
test-unit: build |
62 | 62 |
$(DOCKER_RUN_DOCKER) hack/make.sh test-unit |
63 | 63 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,43 @@ |
0 |
+#!/bin/bash |
|
1 |
+set -e |
|
2 |
+ |
|
3 |
+DEST=$1 |
|
4 |
+ |
|
5 |
+DOCKER_GRAPHDRIVER=${DOCKER_GRAPHDRIVER:-vfs} |
|
6 |
+DOCKER_EXECDRIVER=${DOCKER_EXECDRIVER:-native} |
|
7 |
+ |
|
8 |
+# subshell so that we can export PATH without breaking other things |
|
9 |
+exec > >(tee -a $DEST/test.log) 2>&1 |
|
10 |
+( |
|
11 |
+ export PATH="$DEST/../binary:$DEST/../dynbinary:$PATH" |
|
12 |
+ |
|
13 |
+ if ! command -v docker &> /dev/null; then |
|
14 |
+ echo >&2 'error: binary or dynbinary must be run before test-docker-py' |
|
15 |
+ false |
|
16 |
+ fi |
|
17 |
+ |
|
18 |
+ # intentionally open a couple bogus file descriptors to help test that they get scrubbed in containers |
|
19 |
+ exec 41>&1 42>&2 |
|
20 |
+ |
|
21 |
+ ( set -x; exec \ |
|
22 |
+ docker --daemon --debug \ |
|
23 |
+ --storage-driver "$DOCKER_GRAPHDRIVER" \ |
|
24 |
+ --exec-driver "$DOCKER_EXECDRIVER" \ |
|
25 |
+ --pidfile "$DEST/docker.pid" \ |
|
26 |
+ &> "$DEST/docker.log" |
|
27 |
+ ) & |
|
28 |
+ |
|
29 |
+ mkdir -p /tmp/dockerpy-tests && cd /tmp/dockerpy-tests |
|
30 |
+ git clone https://github.com/docker/docker-py.git |
|
31 |
+ cd docker-py |
|
32 |
+ git checkout 0.6.0-integration |
|
33 |
+ python setup.py install |
|
34 |
+ python tests/integration_test.py |
|
35 |
+ |
|
36 |
+ for pid in $(find "$DEST" -name docker.pid); do |
|
37 |
+ DOCKER_PID=$(set -x; cat "$pid") |
|
38 |
+ ( set -x; kill $DOCKER_PID ) |
|
39 |
+ wait $DOCKERD_PID || true |
|
40 |
+ done |
|
41 |
+) |
|
42 |
+ |