Home | History | Annotate | Download | only in .travis
      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