#!/usr/bin/env bash # Run the integration tests with multiple versions of the Docker engine set -e set -x DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) if [ "$TMPDIR" != "" ] && [ ! -d "$TMPDIR" ]; then mkdir -p $TMPDIR fi cachedir=`mktemp -t -d golem-cache.XXXXXX` trap "rm -rf $cachedir" EXIT if [ "$1" == "-d" ]; then # Drivers to use for Docker engines the tests are going to create. STORAGE_DRIVER=${STORAGE_DRIVER:-overlay} docker daemon --log-level=panic --storage-driver="$STORAGE_DRIVER" & DOCKER_PID=$! # Wait for it to become reachable. tries=10 until docker version &> /dev/null; do (( tries-- )) if [ $tries -le 0 ]; then echo >&2 "error: daemon failed to start" exit 1 fi sleep 1 done trap "kill $DOCKER_PID" EXIT fi distimage=$(docker build -q $DIR/../..) fullversion=$(git describe --match 'v[0-9]*' --dirty='.m' --always) distversion=${fullversion:1} echo "Testing image $distimage with distribution version $distversion" # Pull needed images before invoking golem to get pull time # These images are defined in golem.conf time docker pull nginx:1.9 time docker pull golang:1.6 time docker pull dmcgowan/token-server:simple time docker pull dmcgowan/token-server:oauth time docker pull distribution/golem-runner:0.1-bats time docker pull docker:1.9.1-dind time docker pull docker:1.10.3-dind time docker pull docker:1.11.1-dind time docker pull docker:1.12.3-dind time docker pull docker:1.13.0-rc5-dind golem -cache $cachedir \ -i "golem-distribution:latest,$distimage,$distversion" \ -i "golem-dind:latest,docker:1.9.1-dind,1.9.1" \ -i "golem-dind:latest,docker:1.10.3-dind,1.10.3" \ -i "golem-dind:latest,docker:1.11.1-dind,1.11.1" \ -i "golem-dind:latest,docker:1.12.3-dind,1.12.3" \ -i "golem-dind:latest,docker:1.13.0-rc5-dind,1.13.0" \ $DIR