Switching travis over to using the containers infrastructure.
[cvc5.git] / .travis.yml
1 language: cpp
2 cache:
3 apt: true
4 directories:
5 - $HOME/cxxtest
6
7 sudo: false
8
9 compiler:
10 - gcc
11 - clang
12 env:
13 - TRAVIS_CVC4=yes TRAVIS_CVC4_CONFIG='production --enable-language-bindings=java,c'
14 - TRAVIS_CVC4=yes TRAVIS_CVC4_CONFIG='debug --enable-language-bindings=java,c'
15 - TRAVIS_CVC4=yes TRAVIS_CVC4_DISTCHECK=yes
16 - TRAVIS_LFSC=yes
17 - TRAVIS_LFSC=yes TRAVIS_LFSC_DISTCHECK=yes
18 addons:
19 apt:
20 sources:
21 - ubuntu-toolchain-r-test
22 packages:
23 - libgmp-dev
24 - libboost-dev
25 - libboost-thread-dev
26 - swig
27 - libcln-dev
28 - openjdk-7-jdk
29 - antlr3
30 - libantlr3c-dev
31 install:
32 # Download and cache a copy of cxxtest until it appears officially in quantal.
33 - wget http://sourceforge.net/projects/cxxtest/files/cxxtest/4.3/cxxtest-4.3.tar.gz
34 - tar -xzvf cxxtest-4.3.tar.gz
35 - cp -vRT cxxtest-4.3 $HOME/cxxtest
36 before_script:
37 - export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
38 - export PATH=$PATH:$JAVA_HOME/bin
39 - export JAVA_CPPFLAGS=-I$JAVA_HOME/include
40 - ./autogen.sh
41 script:
42 - |
43 echo "travis_fold:start:load_script"
44 normal="$(echo -e '\033[0m')" red="$normal$(echo -e '\033[01;31m')" green="$normal$(echo -e '\033[01;32m')"
45 configureCVC4() {
46 echo "CVC4 config - $TRAVIS_CVC4_CONFIG";
47 ./configure --enable-unit-testing --enable-proof --with-portfolio $TRAVIS_CVC4_CONFIG CXXTEST=$HOME/cxxtest ||
48 (echo; cat builds/config.log; error "CONFIGURE FAILED");
49 }
50 error() {
51 echo;
52 echo "${red}${1}${normal}";
53 echo;
54 exit 1;
55 }
56 makeDistcheck() {
57 make -j2 distcheck CVC4_REGRESSION_ARGS='--no-early-exit' DISTCHECK_CONFIGURE_FLAGS="CXXTEST=$HOME/cxxtest" ||
58 error "DISTCHECK (WITH NEWTHEORY TESTS) FAILED";
59 }
60 makeCheck() {
61 make -j2 check CVC4_REGRESSION_ARGS='--no-early-exit' || error "BUILD/TEST FAILED";
62 }
63 makeCheckPortfolio() {
64 make check BINARY=pcvc4 CVC4_REGRESSION_ARGS='--fallback-sequential --no-early-exit' RUN_REGRESSION_ARGS= ||
65 error "PORTFOLIO TEST FAILED";
66 }
67 makeExamples() {
68 make -j2 examples || error "COULD NOT BUILD EXAMPLES${normal}";
69 }
70 addNewTheoryTest() {
71 contrib/new-theory test_newtheory || error "NEWTHEORY FAILED";
72 grep -q '^THEORIES *=.* test_newtheory' src/Makefile.theories || error "NEWTHEORY FAILED";
73 contrib/new-theory --alternate test_newtheory test_newalttheory || error "NEWTHEORY-ALTERNATE FAILED";
74 grep -q '^THEORIES *=.* test_newalttheory' src/Makefile.theories || error "NEWTHEORY-ALTERNATE FAILED";
75 }
76 LFSCchecks() {
77 cd proofs/lfsc_checker &&
78 (./configure || (echo; cat builds/config.log; echo; echo "${red}CONFIGURE FAILED${normal}"; exit 1)) &&
79 if [ -n "$TRAVIS_LFSC_DISTCHECK" ]; then
80 make -j2 distcheck || (echo; echo "${red}LFSC DISTCHECK FAILED${normal}"; echo; exit 1);
81 else
82 make -j2 || (echo; echo "${red}LFSC BUILD FAILED${normal}"; echo; exit 1);
83 fi;
84 }
85 run() {
86 echo "travis_fold:start:$1"
87 echo "Running $1"
88 $1 || exit 1
89 echo "travis_fold:end:$1"
90 }
91 [ -n "$TRAVIS_CVC4" ] && [ -n "$TRAVIS_CVC4_DISTCHECK" ] && run addNewTheoryTest
92 [ -n "$TRAVIS_CVC4" ] && run configureCVC4
93 [ -n "$TRAVIS_CVC4" ] && [ -n "$TRAVIS_CVC4_DISTCHECK" ] && run makeDistcheck
94 [ -n "$TRAVIS_CVC4" ] && [ -z "$TRAVIS_CVC4_DISTCHECK" ] && run makeCheck && run makeCheckPortfolio && run makeExamples
95 [ -n "$TRAVIS_LFSC" ] && run LFSCchecks
96 [ -z "$TRAVIS_CVC4" ] && [ -z "$TRAVIS_LFSC" ] && error "Unknown Travis-CI configuration"
97 echo "travis_fold:end:load_script"
98 - echo; echo "${green}EVERYTHING SEEMED TO PASS!${normal}"
99 matrix:
100 fast_finish: true
101 notifications:
102 email:
103 on_success: change
104 on_failure: always