summaryrefslogtreecommitdiff
path: root/.travis.yml
diff options
context:
space:
mode:
authorNobuaki Sukegawa <nsuke@apache.org>2016-09-04 17:00:11 +0900
committerNobuaki Sukegawa <nsuke@apache.org>2016-09-04 21:13:32 +0900
commit93fb7eadd093e561e3c7122dc9eb084ca033047d (patch)
treed1c760034eb5505dbe822231b6c867a5e3351311 /.travis.yml
parentd2b4f248368be36ff24c5a54fa4f8cfb86b7ab36 (diff)
downloadthrift-93fb7eadd093e561e3c7122dc9eb084ca033047d.tar.gz
THRIFT-3907 Skip Docker image build on CI when unchanged
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml39
1 files changed, 14 insertions, 25 deletions
diff --git a/.travis.yml b/.travis.yml
index 847a5f8ac..fc5f95331 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,16 +26,16 @@ services:
- docker
install:
- - cp -r ./build/docker/scripts/*.sh ./build/docker/$DISTRO/scripts/
- - travis_retry travis_wait docker build -q -t thrift-build build/docker/$DISTRO
+ - (travis_wait ./build/docker/check_unmodified.sh $DISTRO && touch .unmodified) || true
+ - if [ ! -f .unmodified ]; then travis_retry travis_wait docker build -q -t thrift-build:$DISTRO build/docker/$DISTRO; fi
script:
- - docker run --net=host -e BUILD_LIBS="$BUILD_LIBS" $BUILD_ENV -v $(pwd):/thrift/src -it thrift-build $BUILD_CMD $BUILD_ARG
+ - docker run --net=host -e BUILD_LIBS="$BUILD_LIBS" $BUILD_ENV -v $(pwd):/thrift/src -it thrift-build:$DISTRO build/docker/scripts/$SCRIPT $BUILD_ARG
env:
global:
- TEST_NAME=""
- - BUILD_CMD="none"
+ - SCRIPT="cmake.sh"
- BUILD_ARG=""
- BUILD_ENV="-e CC=clang -e CXX=clang++"
- DISTRO=ubuntu
@@ -44,12 +44,12 @@ env:
matrix:
# TODO: Break up by protocol types to avoid 50min limit
- TEST_NAME="Cross Language Tests"
- BUILD_CMD="../cross-test.sh"
+ SCRIPT="cross-test.sh"
BUILD_ARG="--enable-tutorial=no"
BUILD_ENV="-e CC=clang -e CXX=clang++ -e THRIFT_CROSSTEST_CONCURRENCY=4"
- TEST_NAME="Cross Language Tests (Debian)"
- BUILD_CMD="../cross-test.sh"
+ SCRIPT="cross-test.sh"
BUILD_ARG="--enable-tutorial=no"
BUILD_ENV="-e CC=clang -e CXX=clang++ -e THRIFT_CROSSTEST_CONCURRENCY=4"
DISTRO=debian
@@ -57,78 +57,67 @@ env:
# TODO: Remove them once migrated to CMake
# Autotools builds
- TEST_NAME="C C++ C# D Erlang Haxe Go (automake)"
- BUILD_CMD="../autotools.sh"
+ SCRIPT="autotools.sh"
BUILD_ARG="--without-dart --without-haskell --without-java --without-lua --without-nodejs --without-perl --without-php --without-php_extension --without-python --without-ruby"
- TEST_NAME="C C++ - GCC (automake)"
- BUILD_CMD="../autotools.sh"
+ SCRIPT="autotools.sh"
BUILD_ARG="--without-csharp --without-java --without-erlang --without-nodejs --without-lua --without-python --without-perl --without-php --without-php_extension --without-dart --without-ruby --without-haskell --without-go --without-haxe --without-d"
BUILD_ENV="-e CC=gcc -e CXX=g++"
- TEST_NAME="Java Lua PHP Ruby Dart (automake)"
- BUILD_CMD="../autotools.sh"
+ SCRIPT="autotools.sh"
BUILD_ARG="--without-cpp --without-haskell --without-c_glib --without-csharp --without-d --without-erlang --without-go --without-haxe --without-nodejs --without-python --without-perl"
# These are flaky (due to cabal and npm network/server failures) and also have lengthy output
- TEST_NAME="Haskell Node.js Python Perl (automake)"
- BUILD_CMD="../autotools.sh"
+ SCRIPT="autotools.sh"
BUILD_ARG="--without-cpp --without-c_glib --without-csharp --without-d --without-dart --without-erlang --without-go --without-haxe --without-java --without-lua --without-php --without-php_extension --without-ruby"
# CMake build
- TEST_NAME="All"
- BUILD_CMD="../cmake.sh"
- TEST_NAME="All (Debian)"
- BUILD_CMD="../cmake.sh"
DISTRO=debian
- TEST_NAME="C C++ - GCC"
- BUILD_CMD="../cmake.sh"
BUILD_LIBS="CPP C_GLIB TESTING TUTORIALS"
BUILD_ARG="-DWITH_PYTHON=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF"
BUILD_ENV="-e CC=gcc -e CXX=g++"
- TEST_NAME="C++ (Boost Thread)"
- BUILD_CMD="../cmake.sh"
BUILD_LIBS="CPP TESTING TUTORIALS"
BUILD_ARG="-DWITH_BOOSTTHREADS=ON -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF"
- TEST_NAME="C++ (Boost Thread - GCC)"
- BUILD_CMD="../cmake.sh"
BUILD_LIBS="CPP TESTING TUTORIALS"
BUILD_ARG="-DWITH_BOOSTTHREADS=ON -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF"
BUILD_ENV="-e CC=gcc -e CXX=g++"
- TEST_NAME="C++ (Std Thread)"
- BUILD_CMD="../cmake.sh"
BUILD_LIBS="CPP TESTING TUTORIALS"
BUILD_ARG="-DWITH_STDTHREADS=ON -DCMAKE_CXX_FLAGS='-std=c++11' -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF"
- TEST_NAME="C++ (Std Thread - GCC)"
- BUILD_CMD="../cmake.sh"
BUILD_LIBS="CPP TESTING TUTORIALS"
BUILD_ARG="-DWITH_STDTHREADS=ON -DCMAKE_CXX_FLAGS='-std=c++11' -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF"
BUILD_ENV="-e CC=gcc -e CXX=g++"
- TEST_NAME="Compiler (mingw)"
- BUILD_CMD="../cmake.sh"
BUILD_LIBS=""
BUILD_ARG="-DCMAKE_TOOLCHAIN_FILE=../build/cmake/mingw32-toolchain.cmake -DBUILD_COMPILER=ON -DBUILD_LIBRARIES=OFF -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF"
BUILD_ENV=""
- TEST_NAME="All - GCC (CentOS)"
- BUILD_CMD="../cmake.sh"
BUILD_ENV="-e CC=gcc -e CXX=g++"
DISTRO=centos
- TEST_NAME="C C++ - Clang (CentOS)"
- BUILD_CMD="../cmake.sh"
BUILD_LIBS="CPP C_GLIB TESTING TUTORIALS"
BUILD_ARG="-DWITH_PYTHON=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF"
DISTRO=centos
- TEST_NAME="Python 2.6 (CentOS 6)"
- BUILD_CMD="../cmake.sh"
BUILD_LIBS="PYTHON TESTING TUTORIALS"
BUILD_ARG="-DWITH_PYTHON=ON -DWITH_CPP=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF"
BUILD_ENV="-e CC=gcc -e CXX=g++"
@@ -136,20 +125,20 @@ env:
# Distribution
- TEST_NAME="make dist"
- BUILD_CMD="../make-dist.sh"
+ SCRIPT="make-dist.sh"
BUILD_ENV="-e CC=gcc -e CXX=g++"
- TEST_NAME="Debian Packages"
- BUILD_CMD="../dpkg.sh"
+ SCRIPT="dpkg.sh"
BUILD_ENV="-e CC=gcc -e CXX=g++"
- TEST_NAME="make dist (Debian)"
- BUILD_CMD="../make-dist.sh"
+ SCRIPT="make-dist.sh"
BUILD_ENV="-e CC=gcc -e CXX=g++"
DISTRO=debian
- TEST_NAME="Debian Packages (Debian)"
- BUILD_CMD="../dpkg.sh"
+ SCRIPT="dpkg.sh"
BUILD_ENV="-e CC=gcc -e CXX=g++"
DISTRO=debian