thrift/.travis.yml

214 lines
7.3 KiB
YAML

#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# build Apache Thrift on Travis CI - https://travis-ci.org/
language: cpp
cache:
- apt
- 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;
- 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 ..;
- 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;
- 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 ..;
- 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;
- 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;
- 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;
- 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
# TODO make it perfect ;-r