From 93fb7eadd093e561e3c7122dc9eb084ca033047d Mon Sep 17 00:00:00 2001 From: Nobuaki Sukegawa Date: Sun, 4 Sep 2016 17:00:11 +0900 Subject: THRIFT-3907 Skip Docker image build on CI when unchanged --- .travis.yml | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) (limited to '.travis.yml') 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 -- cgit v1.2.1