RIP th_lra.plf (#3796)
[cvc5.git] / .travis.yml
1 language: cpp
2 cache:
3 - apt
4 - ccache
5
6 sudo: false
7 dist: xenial
8
9 env:
10 global:
11 - CCACHE_COMPRESS=1
12 addons:
13 apt:
14 sources:
15 - ubuntu-toolchain-r-test
16 packages: &common_deps
17 - antlr3
18 - cmake
19 - cxxtest
20 - junit4
21 - libantlr3c-dev
22 - libcln-dev
23 - libgmp-dev
24 - libhamcrest-java
25 - openjdk-8-jdk
26 - python3
27 - python3-pip
28 - python3-setuptools
29 - swig3.0
30 before_install:
31 - eval "${MATRIX_EVAL}"
32 # Clang does not play nice with ccache (at least the versions offered by
33 # Travis), use a workaround:
34 # https://github.com/travis-ci/travis-ci/issues/5383#issuecomment-224630584
35 - |
36 if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$CXX" == "clang++" ]; then
37 export CFLAGS="-Qunused-arguments"
38 export CXXFLAGS="-Qunused-arguments"
39 sudo ln -s $(which ccache) /usr/lib/ccache/clang
40 sudo ln -s $(which ccache) /usr/lib/ccache/clang++
41 fi
42 before_script:
43 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
44 script:
45 - ccache -M 1G
46 - ccache -z
47 - ${CC} --version
48 - ${CXX} --version
49 - sudo ${TRAVIS_PYTHON} -m pip install toml
50 - sudo ${TRAVIS_PYTHON} -m pip install Cython==0.29 --install-option="--no-cython-compile"
51 - |
52 echo "travis_fold:start:load_script"
53 normal="$(echo -e '\033[0m')" red="$normal$(echo -e '\033[01;31m')" green="$normal$(echo -e '\033[01;32m')"
54 configureCVC4() {
55 echo "CVC4 config - $TRAVIS_CVC4_CONFIG";
56 ./configure.sh --name=build --prefix=$(pwd)/build/install --unit-testing $TRAVIS_CVC4_CONFIG
57 }
58 error() {
59 echo;
60 echo "${red}${1}${normal}";
61 echo;
62 exit 1;
63 }
64 makeCheck() {
65 (
66 cd build
67 make -j2 check ARGS='-LE regress[1-4]' CVC4_REGRESSION_ARGS='--no-early-exit' || error "BUILD/UNIT/SYSTEM/REGRESSION TEST FAILED"
68 )
69 }
70 makeExamples() {
71 (
72 cd examples
73 mkdir build
74 cd build
75 cmake .. -DCMAKE_PREFIX_PATH=$(pwd)/../../build/install/lib/cmake
76 make -j2
77 ctest -j2 --output-on-failure || error "RUNNING EXAMPLES FAILED"
78 )
79 }
80 makeInstallCheck() {
81 (
82 cd build
83 make install -j2
84 echo -e "#include <cvc4/cvc4.h>\nint main() { CVC4::ExprManager em; return 0; }" > /tmp/test.cpp
85 $CXX -std=c++11 /tmp/test.cpp -I install/include -L install/lib -lcvc4 -lcln || exit 1
86 )
87 }
88 run() {
89 echo "travis_fold:start:$1"
90 echo "Running $1"
91 $1 || exit 1
92 echo "travis_fold:end:$1"
93 }
94 [[ "$TRAVIS_CVC4_CONFIG" == *"symfpu"* ]] && CVC4_SYMFPU_BUILD="yes"
95 [ -n "$CVC4_SYMFPU_BUILD" ] && run contrib/get-symfpu
96 [ -n "$TRAVIS_CVC4" ] && [ -n "$TRAVIS_WITH_LFSC" ] && run contrib/get-lfsc-checker
97 [ -n "$TRAVIS_CVC4" ] && run configureCVC4
98 [ -n "$TRAVIS_CVC4" ] && run makeCheck
99 [ -z "$CVC4_SYMFPU_BUILD" ] && run makeInstallCheck && run makeExamples
100 [ -z "$TRAVIS_CVC4" ] && error "Unknown Travis-CI configuration"
101 echo "travis_fold:end:load_script"
102 - echo; echo "${green}EVERYTHING SEEMED TO PASS!${normal}"
103 - ccache -s
104 matrix:
105 fast_finish: true
106 include:
107 # Test with GCC
108 - compiler: gcc
109 env:
110 - TRAVIS_CVC4=yes TRAVIS_WITH_LFSC=yes TRAVIS_CVC4_CONFIG='production --language-bindings=java --lfsc' TRAVIS_PYTHON="python"
111 - compiler: gcc
112 env:
113 - TRAVIS_CVC4=yes TRAVIS_WITH_LFSC=yes TRAVIS_CVC4_CONFIG='debug --symfpu --lfsc --no-debug-symbols' TRAVIS_PYTHON="python"
114 # Test python bindings
115 - compiler: gcc
116 env:
117 - TRAVIS_CVC4=yes TRAVIS_WITH_LFSC=yes TRAVIS_CVC4_CONFIG="production --python-bindings --python2" TRAVIS_PYTHON="python"
118 - compiler: gcc
119 env:
120 - TRAVIS_CVC4=yes TRAVIS_WITH_LFSC=yes TRAVIS_CVC4_CONFIG="production --python-bindings --python3" TRAVIS_PYTHON="python3"
121 #
122 # Test with Clang
123 - compiler: clang
124 env:
125 - TRAVIS_CVC4=yes TRAVIS_WITH_LFSC=yes TRAVIS_CVC4_CONFIG='debug --symfpu --cln --gpl --no-debug-symbols --no-proofs' TRAVIS_PYTHON="python"
126 notifications:
127 email:
128 on_success: change
129 on_failure: always