Test Java API on CI
[cvc5.git] / .travis.yml
1 language: cpp
2 cache:
3 apt: true
4 directories:
5 - $HOME/cxxtest
6
7 sudo: required
8 dist: trusty
9
10 compiler:
11 - gcc
12 - clang
13 env:
14 global:
15 # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
16 # via the "travis encrypt" command using the project repo's public key
17 - secure: "fRfdzYwV10VeW5tVSvy5qpR8ZlkXepR7XWzCulzlHs9SRI2YY20BpzWRjyMBiGu2t7IeJKT7qdjq/CJOQEM8WS76ON7QJ1iymKaRDewDs3OhyPJ71fsFKEGgLky9blk7I9qZh23hnRVECj1oJAVry9IK04bc2zyIEjUYpjRkUAQ="
18 - TEST_GROUPS=2
19 matrix:
20 - TRAVIS_CVC4=yes TRAVIS_CVC4_CHECK_PORTFOLIO=yes TRAVIS_CVC4_JAVA_API_TEST=yes TRAVIS_CVC4_CONFIG='production --enable-language-bindings=java,c --enable-proof --with-portfolio'
21 - TRAVIS_CVC4=yes TRAVIS_CVC4_CHECK_PORTFOLIO=yes TRAVIS_CVC4_JAVA_API_TEST=yes TRAVIS_CVC4_CONFIG='debug --enable-language-bindings=java,c --enable-proof --with-portfolio' TEST_GROUP=0
22 - TRAVIS_CVC4=yes TRAVIS_CVC4_CHECK_PORTFOLIO=yes TRAVIS_CVC4_CONFIG='debug --enable-language-bindings=java,c --enable-proof --with-portfolio' TEST_GROUP=1
23 - TRAVIS_CVC4=yes TRAVIS_CVC4_CONFIG='--disable-proof'
24 - TRAVIS_CVC4=yes TRAVIS_CVC4_DISTCHECK=yes TRAVIS_CVC4_CONFIG='--enable-proof'
25 - TRAVIS_LFSC=yes
26 - TRAVIS_LFSC=yes TRAVIS_LFSC_DISTCHECK=yes
27 addons:
28 apt:
29 sources:
30 - ubuntu-toolchain-r-test
31 packages:
32 - libgmp-dev
33 - libboost-dev
34 - libboost-thread-dev
35 - swig
36 - libcln-dev
37 - openjdk-7-jdk
38 - antlr3
39 - libantlr3c-dev
40 - ant-optional
41 install:
42 # Download and cache a copy of cxxtest until it appears officially in quantal.
43 - wget http://sourceforge.net/projects/cxxtest/files/cxxtest/4.3/cxxtest-4.3.tar.gz
44 - tar -xzvf cxxtest-4.3.tar.gz
45 - cp -vRT cxxtest-4.3 $HOME/cxxtest
46 before_script:
47 - export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
48 - export PATH=$PATH:$JAVA_HOME/bin
49 - export JAVA_CPPFLAGS=-I$JAVA_HOME/include
50 - ./autogen.sh
51 script:
52 - |
53 echo "travis_fold:start:load_script"
54 normal="$(echo -e '\033[0m')" red="$normal$(echo -e '\033[01;31m')" green="$normal$(echo -e '\033[01;32m')"
55 configureCVC4() {
56 echo "CVC4 config - $TRAVIS_CVC4_CONFIG";
57 ./configure --enable-unit-testing $TRAVIS_CVC4_CONFIG CXXTEST=$HOME/cxxtest ||
58 (echo; echo "Trying to print config.log"; cat builds/config.log; error "CONFIGURE FAILED");
59 }
60 error() {
61 echo;
62 echo "${red}${1}${normal}";
63 echo;
64 exit 1;
65 }
66 makeDistcheck() {
67 make V=1 -j2 distcheck CVC4_REGRESSION_ARGS='--no-early-exit' DISTCHECK_CONFIGURE_FLAGS="CXXTEST=$HOME/cxxtest" ||
68 error "DISTCHECK (WITH NEWTHEORY TESTS) FAILED";
69 }
70 makeCheck() {
71 make V=1 -j2 check CVC4_REGRESSION_ARGS='--no-early-exit' || error "BUILD/TEST FAILED";
72 }
73 makeCheckPortfolio() {
74 make V=1 -j2 check BINARY=pcvc4 CVC4_REGRESSION_ARGS='--fallback-sequential --no-early-exit' RUN_REGRESSION_ARGS= ||
75 error "PORTFOLIO TEST FAILED";
76 }
77 JavaApiTest() {
78 pushd test/java
79 local status=${ant}
80 popd
81 return $status
82 }
83 makeExamples() {
84 make V=1 -j2 examples || error "COULD NOT BUILD EXAMPLES${normal}";
85 }
86 addNewTheoryTest() {
87 contrib/new-theory test_newtheory || error "NEWTHEORY FAILED";
88 grep -q '^THEORIES *=.* test_newtheory' src/Makefile.theories || error "NEWTHEORY FAILED";
89 contrib/new-theory --alternate test_newtheory test_newalttheory || error "NEWTHEORY-ALTERNATE FAILED";
90 grep -q '^THEORIES *=.* test_newalttheory' src/Makefile.theories || error "NEWTHEORY-ALTERNATE FAILED";
91 }
92 LFSCchecks() {
93 cd proofs/lfsc_checker &&
94 (./configure || (echo; cat builds/config.log; echo; echo "${red}CONFIGURE FAILED${normal}"; exit 1)) &&
95 if [ -n "$TRAVIS_LFSC_DISTCHECK" ]; then
96 make -j2 distcheck || (echo; echo "${red}LFSC DISTCHECK FAILED${normal}"; echo; exit 1);
97 else
98 make -j2 || (echo; echo "${red}LFSC BUILD FAILED${normal}"; echo; exit 1);
99 fi;
100 }
101 run() {
102 echo "travis_fold:start:$1"
103 echo "Running $1"
104 $1 || exit 1
105 echo "travis_fold:end:$1"
106 }
107 [ -n "$TRAVIS_CVC4" ] && [ -n "$TRAVIS_CVC4_DISTCHECK" ] && run addNewTheoryTest
108 [ -n "$TRAVIS_CVC4" ] && run configureCVC4
109 [ -n "$TRAVIS_CVC4" ] && [ -n "$TRAVIS_CVC4_DISTCHECK" ] && run makeDistcheck
110 [ -n "$TRAVIS_CVC4" ] && [ -z "$TRAVIS_CVC4_DISTCHECK" ] && run makeCheck && run makeExamples
111 [ -n "$TRAVIS_CVC4" ] && [ -n "$TRAVIS_CVC4_CHECK_PORTFOLIO" ] && run makeCheckPortfolio
112 [ -n "$TRAVIS_CVC4" ] && [ -n "$TRAVIS_CVC4_JAVA_API_TEST" ] && run JavaApiTest
113 [ -n "$TRAVIS_LFSC" ] && run LFSCchecks
114 [ -n "$TRAVIS_COVERITY" ] && echo "Running coverity. Skipping the normal build."
115 [ -z "$TRAVIS_CVC4" ] && [ -z "$TRAVIS_LFSC" ] && [ -z "$TRAVIS_COVERITY" ] && error "Unknown Travis-CI configuration"
116 echo "travis_fold:end:load_script"
117 - echo; echo "${green}EVERYTHING SEEMED TO PASS!${normal}"
118 matrix:
119 fast_finish: true
120 # Rule for running Coverity Scan.
121 include:
122 - os: linux
123 compiler: gcc
124 before_install: echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-
125 env:
126 - TRAVIS_COVERITY=yes CVC4_REGRESSION_ARGS='--no-early-exit' CXXTEST="$HOME/cxxtest"
127 addons:
128 # Need to duplicate as addons will be over written.
129 apt:
130 sources:
131 - ubuntu-toolchain-r-test
132 packages:
133 - libgmp-dev
134 - libboost-dev
135 - libboost-thread-dev
136 - swig
137 - libcln-dev
138 - openjdk-7-jdk
139 - antlr3
140 - libantlr3c-dev
141 coverity_scan:
142 project:
143 name: "CVC4/CVC4"
144 description: "Build submitted via Travis CI"
145 notification_email: timothy.alan.king@gmail.com
146 build_command_prepend: "./autogen.sh; ./configure --enable-unit-testing --enable-proof"
147 build_command: "make V=1 -j4"
148 branch_pattern: coverity_scan
149 after_failure:
150 - cat /home/travis/build/CVC4/CVC4/cov-int/build-log.txt
151 notifications:
152 email:
153 on_success: change
154 on_failure: always