summaryrefslogtreecommitdiff
path: root/.travis.yml
diff options
context:
space:
mode:
authorRoger Meier <roger@apache.org>2014-11-16 22:31:33 +0100
committerRoger Meier <roger@apache.org>2014-11-16 22:31:33 +0100
commit5effab65e38d1e4170d21e92c150d34375aab872 (patch)
tree996db165b5e3dc04b459f9916a88a1dccef8d210 /.travis.yml
parent2e091f681b48562f7b9706c77243787901963e44 (diff)
downloadthrift-5effab65e38d1e4170d21e92c150d34375aab872.tar.gz
.travis.yml: restructure matrix build, add QA, add CMake builds
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml195
1 files changed, 165 insertions, 30 deletions
diff --git a/.travis.yml b/.travis.yml
index d82927479..4d9faee69 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,53 +26,188 @@ cache:
- npm
- maven
+env:
+ global:
+ - TEST_NAME=""
+ - CONFIG=""
+ - GHCVER=7.8.3
+matrix:
+ include:
+ - env:
+ - TEST_NAME="compiler (gcc, automake)"
+ CONFIG="--disable-libs"
+ compiler: gcc
+ before_install:
+ - sh contrib/installCXXDependencies.sh;
+ script:
+ - sh bootstrap.sh;
+ - sh configure $CONFIG;
+ - make check -j2;
-## Build matrix:
-env:
- # Small Set
- - CONFIG="--without-erlang --without-haskell --without-python --without-go --without-lua --without-d --without-ruby --without-nodejs --without-java"
+ - env:
+ - TEST_NAME="compiler (gcc, CMake + CPack)"
+ compiler: gcc
+ before_install:
+ - sh contrib/installCXXDependencies.sh;
+ script:
+ - mkdir build_native && cd build_native && cmake ../compiler/cpp/ && make -j4 && cpack && cd ..;
- # C & C++ & Haskell (for some reason qt4 is required)
- - CONFIG="--without-csharp --without-java --without-erlang --without-nodejs --without-lua --without-python --without-perl --without-php --without-php-extension --without-ruby --without-go --without-d" GHCVER=7.8.3
+ - env:
+ - TEST_NAME="compiler (clang, automake)"
+ CONFIG="--disable-libs"
+ compiler: clang
+ before_install:
+ - sh contrib/installCXXDependencies.sh;
+ script:
+ - sh bootstrap.sh;
+ - sh configure $CONFIG;
+ - make check -j2;
- # Build All
- # TODO: fix these languages
- - CONFIG="--without-erlang --without-python --without-go --without-lua" GHCVER=7.8.3
+ - env:
+ - TEST_NAME="compiler (clang, CMake + CPack)"
+ compiler: clang
+ before_install:
+ - sh contrib/installCXXDependencies.sh;
+ script:
+ - mkdir build_native && cd build_native && cmake ../compiler/cpp/ && make -j4 && cpack && cd ..;
+ - env:
+ - TEST_NAME="compiler (mingw32-gcc, CMake + CPack)"
+ before_install:
+ - sh contrib/installCXXDependencies.sh;
+ - sudo apt-get install nsis
+ script:
+ - mkdir build_mingw32 && cd build_mingw32 && cmake -DCMAKE_TOOLCHAIN_FILE=../contrib/mingw32-toolchain.cmake ../compiler/cpp/ && make -j4 && cpack && cd ..;
-matrix:
- include:
- - compiler: gcc
- env: CONFIG="--disable-libs"
+ - env:
+ - TEST_NAME="all (gcc, automake)"
+ CONFIG="--without-erlang --without-python --without-go --without-lua"
+ compiler: gcc
before_install:
- sh contrib/installCXXDependencies.sh;
+ - sh contrib/installDependencies.sh 1> /dev/null;
+ - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/1.20/bin:$PATH
+ - cabal update
script:
+ - sh bootstrap.sh;
+ - sh configure $CONFIG;
- make check -j2;
- - mkdir build_native && cd build_native && cmake ../compiler/cpp/ && make -j2 && cd ..;
- - mkdir build_mingw32 && cd build_mingw32 && cmake -DCMAKE_TOOLCHAIN_FILE=../contrib/mingw32-toolchain.cmake ../compiler/cpp/ && make -j2 && cd ..;
- - compiler: clang
- env: CONFIG="--disable-libs"
+
+ - env:
+ - TEST_NAME="C & C++ & Haskell (gcc, automake)"
+ CONFIG="--without-csharp --without-java --without-erlang --without-nodejs --without-lua --without-python --without-perl --without-php --without-php-extension --without-ruby --without-go --without-d"
+ compiler: gcc
before_install:
- sh contrib/installCXXDependencies.sh;
+ - sh contrib/installDependencies.sh 1> /dev/null;
+ - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/1.20/bin:$PATH
+ - cabal update
script:
+ - sh bootstrap.sh;
+ - sh configure $CONFIG;
- make check -j2;
+ - env:
+ - TEST_NAME="Small Set (gcc, automake)"
+ CONFIG="--without-erlang --without-haskell --without-python --without-go --without-lua --without-d --without-ruby --without-nodejs --without-java"
+ compiler: gcc
+ before_install:
+ - sh contrib/installCXXDependencies.sh;
+ - sh contrib/installDependencies.sh 1> /dev/null;
+ - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/1.20/bin:$PATH
+ - cabal update
+ script:
+ - sh bootstrap.sh;
+ - sh configure $CONFIG;
+ - make check -j2;
-## Default build sequence:
-before_install:
- - sh contrib/installDependencies.sh 1> /dev/null;
- - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/1.20/bin:$PATH
- - cabal update
+ - env:
+ - TEST_NAME="dist (gcc, automake)"
+ CONFIG=""
+ compiler: gcc
+ before_install:
+ - sh contrib/installCXXDependencies.sh;
+ - sh contrib/installDependencies.sh 1> /dev/null;
+ script:
+ - sh bootstrap.sh;
+ - sh configure $CONFIG;
+ - make dist -j2;
+
+ - env:
+ - TEST_NAME="make cross (gcc, automake)"
+ CONFIG="--without-python"
+ compiler: gcc
+ before_install:
+ - sh contrib/installCXXDependencies.sh;
+ - sh contrib/installDependencies.sh 1> /dev/null;
+ - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/1.20/bin:$PATH
+ - cabal update
+ script:
+ - sh bootstrap.sh;
+ - sh configure $CONFIG;
+ - make cross -j2;
-install:
- - sh bootstrap.sh;
- - sh configure $CONFIG;
+ - env:
+ - TEST_NAME="Debian Packages"
+ compiler: gcc
+ before_install:
+ - sh contrib/installCXXDependencies.sh;
+ - sh contrib/installDependencies.sh 1> /dev/null;
+ - sudo apt-get install build-essential mono-gmcs mono-devel libmono-system-web2.0-cil erlang-base ruby1.8-dev python-all python-all-dev python-all-dbg php5 php5-dev
+ script:
+ - dpkg-buildpackage -tc -us -uc
+ - ls -al ..
+
+
+
+ # QA jobs for code analytics and metrics
+
+ # static code analysis with cppcheck (we can add --enable=all later)
+ - env: TEST_NAME="cppcheck (compiler) error"
+ script: cppcheck --force --quiet --inline-suppr --error-exitcode=1 -j2 compiler/cpp/src
+ before_install: sudo apt-get install cppcheck
+ - env: TEST_NAME="cppcheck (cpp) error"
+ script: cppcheck --force --quiet --inline-suppr --error-exitcode=1 -j2 lib/cpp/src lib/cpp/test test/cpp tutorial/cpp
+ before_install: sudo apt-get install cppcheck
+ - env: TEST_NAME="cppcheck (c_glib) error"
+ script: cppcheck --force --quiet --inline-suppr --error-exitcode=1 -j2 lib/c_glib/src lib/c_glib/test test/c_glib/src tutorial/c_glib
+ before_install: sudo apt-get install cppcheck
+ # add --error-exitcode=1 as soon as everything is fixed
+ - env: TEST_NAME="cppcheck (compiler) all"
+ script: cppcheck --force --quiet --inline-suppr --enable=all -j2 compiler/cpp/src
+ before_install: sudo apt-get install cppcheck
+ - env: TEST_NAME="cppcheck (cpp) all"
+ script: cppcheck --force --quiet --inline-suppr --enable=all -j2 lib/cpp/src lib/cpp/test test/cpp tutorial/cpp
+ before_install: sudo apt-get install cppcheck
+ - env: TEST_NAME="cppcheck (c_glib) all"
+ script: cppcheck --force --quiet --inline-suppr --enable=all -j2 lib/c_glib/src lib/c_glib/test test/c_glib/src tutorial/c_glib
+ before_install: sudo apt-get install cppcheck
+
+ # TODO use findbugs for Java
+ # TODO use fxcop for C#
+
+ # TODO do style checks
+
+ # search for TODO within source tree
+ - env: TEST_NAME="TODO"
+ script: grep -r TODO *
+ # search for FIXME within source tree
+ - env: TEST_NAME="FIXME"
+ script: grep -r FIXME *
+ # search for HACK within source tree
+ - env: TEST_NAME="HACK"
+ script: grep -r HACK *
+ # some statistics about the code base
+ - env: TEST_NAME="sloccount"
+ script: sloccount .
+ before_install: sudo apt-get install sloccount
+ # some info about the build machine
+ - env: TEST_NAME="info"
+ script:
+ - dpkg -l
+ - uname -a
-script:
- - make -j2 && make dist;
- - make cross -j2;
-# TODO: add these steps
-# - sh bootstrap.sh ; dpkg-buildpackage -tc
+# TODO make it perfect ;-r