summaryrefslogtreecommitdiff
path: root/script/test-versions
blob: 24412b91825b5f113d6df11d35787b761fd2796c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/bash
# This should be run inside a container built from the Dockerfile
# at the root of the repo - script/test will do it automatically.

set -e

>&2 echo "Running lint checks"
docker run --rm \
  ${GIT_VOLUME} \
  --entrypoint="tox" \
  "$TAG" -e pre-commit

get_versions="docker run --rm
    --entrypoint=/code/.tox/py27/bin/python
    $TAG
    /code/script/versions.py docker/docker"

if [ "$DOCKER_VERSIONS" == "" ]; then
  DOCKER_VERSIONS="$($get_versions default)"
elif [ "$DOCKER_VERSIONS" == "all" ]; then
  DOCKER_VERSIONS="1.9.1 1.10.0-dev"
fi


BUILD_NUMBER=${BUILD_NUMBER-$USER}

for version in $DOCKER_VERSIONS; do
  >&2 echo "Running tests against Docker $version"

  daemon_container="compose-dind-$version-$BUILD_NUMBER"

  function on_exit() {
    if [[ "$?" != "0" ]]; then
        docker logs "$daemon_container" 2>&1 | tail -n 100
    fi
    docker rm -vf "$daemon_container"
  }

  trap "on_exit" EXIT

  if [[ $version == *"-dev" ]]; then
    repo="dnephin/dind"
  else
    repo="dockerswarm/dind"
  fi

  docker run \
    -d \
    --name "$daemon_container" \
    --privileged \
    --volume="/var/lib/docker" \
    "$repo:$version" \
    docker daemon -H tcp://0.0.0.0:2375 $DOCKER_DAEMON_ARGS \
    2>&1 | tail -n 10

  docker run \
    --rm \
    --link="$daemon_container:docker" \
    --env="DOCKER_HOST=tcp://docker:2375" \
    --env="DOCKER_VERSION=$version" \
    --entrypoint="tox" \
    "$TAG" \
    -e py27,py34 -- "$@"

done