1 #!/bin/bash 2 # 3 # Copyright 2018 Google Inc. All rights reserved. 4 # 5 # Licensed under the Apache License, Version 2.0 (the "License"); 6 # you may not use this file except in compliance with the License. 7 # You may obtain a copy of the License at 8 # 9 # http://www.apache.org/licenses/LICENSE-2.0 10 # 11 # Unless required by applicable law or agreed to in writing, software 12 # distributed under the License is distributed on an "AS IS" BASIS, 13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 # See the License for the specific language governing permissions and 15 # limitations under the License. 16 set -e 17 18 # build flatc on debian once to speed up the test loop below 19 docker build -t build_flatc_debian_stretch -f tests/docker/Dockerfile.testing.build_flatc_debian_stretch . 20 BUILD_CONTAINER_ID=$(docker create --read-only build_flatc_debian_stretch) 21 docker cp ${BUILD_CONTAINER_ID}:/code/flatc flatc_debian_stretch 22 23 for f in $(ls tests/docker/languages | sort) 24 do 25 # docker pull sometimes fails for unknown reasons, probably travisci-related. this retries the pull we need a few times. 26 REQUIRED_BASE_IMAGE=$(cat tests/docker/languages/${f} | head -n 1 | awk ' { print $2 } ') 27 28 set +e 29 n=0 30 until [ $n -ge 5 ] 31 do 32 docker pull $REQUIRED_BASE_IMAGE && break 33 n=$[$n+1] 34 sleep 1 35 done 36 set -e 37 38 docker build -t $(echo ${f} | cut -f 3- -d .) -f tests/docker/languages/${f} . 39 echo "TEST OK: ${f}" 40 done 41