refactor .travis.yml
[cvc5.git] / .travis.yml
1 language: cpp
2 cache: apt
3 compiler:
4 - gcc
5 - clang
6 env:
7 - TRAVIS_CVC4=yes TRAVIS_CVC4_CONFIG='production --enable-language-bindings=java,c'
8 - TRAVIS_CVC4=yes TRAVIS_CVC4_CONFIG='debug --enable-language-bindings=java,c'
9 - TRAVIS_CVC4=yes TRAVIS_CVC4_DISTCHECK=yes
10 - TRAVIS_LFSC=yes
11 - TRAVIS_LFSC=yes TRAVIS_LFSC_DISTCHECK=yes
12 before_install:
13 # dhart/ppa is for cxxtest package, which doesn't appear officially until quantal
14 - travis_retry sudo apt-add-repository -y ppa:dhart/ppa
15 - travis_retry sudo apt-get update -qq
16 - travis_retry sudo apt-get install -qq libgmp-dev antlr3 libantlr3c-dev libboost-dev libboost-thread-dev swig2.0 libcln-dev cxxtest openjdk-7-jdk
17 before_script:
18 - export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
19 - export PATH=$PATH:$JAVA_HOME/bin
20 - export JAVA_CPPFLAGS=-I$JAVA_HOME/include
21 - ./autogen.sh
22 script:
23 - |
24 echo "travis_fold:start:load_script"
25 normal="$(echo -e '\033[0m')" red="$normal$(echo -e '\033[01;31m')" green="$normal$(echo -e '\033[01;32m')"
26 configureCVC4() {
27 echo "CVC4 config - $TRAVIS_CVC4_CONFIG";
28 ./configure --enable-unit-testing --enable-proof --with-portfolio $TRAVIS_CVC4_CONFIG ||
29 (echo; cat builds/config.log; error "CONFIGURE FAILED");
30 }
31 error() {
32 echo;
33 echo "${red}${1}${normal}";
34 echo;
35 exit 1;
36 }
37 makeDistcheck() {
38 make -j2 distcheck CVC4_REGRESSION_ARGS='--no-early-exit' ||
39 error "DISTCHECK (WITH NEWTHEORY TESTS) FAILED";
40 }
41 makeCheck() {
42 make -j2 check CVC4_REGRESSION_ARGS='--no-early-exit' || error "BUILD/TEST FAILED";
43 }
44 makeCheckPortfolio() {
45 make check BINARY=pcvc4 CVC4_REGRESSION_ARGS='--fallback-sequential --no-early-exit' RUN_REGRESSION_ARGS= ||
46 error "PORTFOLIO TEST FAILED";
47 }
48 makeExamples() {
49 make -j2 examples || error "COULD NOT BUILD EXAMPLES${normal}";
50 }
51 addNewTheoryTest() {
52 contrib/new-theory test_newtheory || error "NEWTHEORY FAILED";
53 grep -q '^THEORIES *=.* test_newtheory' src/Makefile.am || error "NEWTHEORY FAILED";
54 contrib/new-theory --alternate test_newtheory test_newalttheory || error "NEWTHEORY-ALTERNATE FAILED";
55 grep -q '^THEORIES *=.* test_newalttheory' src/Makefile.am || error "NEWTHEORY-ALTERNATE FAILED";
56 }
57 LFSCchecks() {
58 cd proofs/lfsc_checker &&
59 (./configure || (echo; cat builds/config.log; echo; echo "${red}CONFIGURE FAILED${normal}"; exit 1)) &&
60 if [ -n "$TRAVIS_LFSC_DISTCHECK" ]; then
61 make -j2 distcheck || (echo; echo "${red}LFSC DISTCHECK FAILED${normal}"; echo; exit 1);
62 else
63 make -j2 || (echo; echo "${red}LFSC BUILD FAILED${normal}"; echo; exit 1);
64 fi;
65 }
66 run() {
67 echo "travis_fold:start:$1"
68 echo "Running $1"
69 $1 || exit 1
70 echo "travis_fold:end:$1"
71 }
72 [ -n "$TRAVIS_CVC4" ] && [ -n "$TRAVIS_CVC4_DISTCHECK" ] && run addNewTheoryTest
73 [ -n "$TRAVIS_CVC4" ] && run configureCVC4
74 [ -n "$TRAVIS_CVC4" ] && [ -n "$TRAVIS_CVC4_DISTCHECK" ] && run makeDistcheck
75 [ -n "$TRAVIS_CVC4" ] && [ -z "$TRAVIS_CVC4_DISTCHECK" ] && run makeCheck && run makeCheckPortfolio && run makeExamples
76 [ -n "$TRAVIS_LFSC" ] && run LFSCchecks
77 [ -z "$TRAVIS_CVC4" ] && [ -z "$TRAVIS_LFSC" ] && error "Unknown Travis-CI configuration"
78 echo "travis_fold:end:load_script"
79 - echo; echo "${green}EVERYTHING SEEMED TO PASS!${normal}"
80 matrix:
81 fast_finish: true
82 notifications:
83 email:
84 on_success: change
85 on_failure: always