Enable ccache compression, increase cache size (#1099)
[cvc5.git] / .travis.yml
1 language: cpp
2 cache:
3 - apt
4 - ccache
5
6 # We need more than 4G memory for compiling CVC4. Hence, we cannot switch
7 # to container-based virtualization environments since they only provide 4G of
8 # memory. We will stick with the VM-based environments for now.
9 sudo: required
10 dist: trusty
11
12 compiler:
13 - gcc
14 - clang
15 env:
16 global:
17 # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
18 # via the "travis encrypt" command using the project repo's public key
19 - secure: "fRfdzYwV10VeW5tVSvy5qpR8ZlkXepR7XWzCulzlHs9SRI2YY20BpzWRjyMBiGu2t7IeJKT7qdjq/CJOQEM8WS76ON7QJ1iymKaRDewDs3OhyPJ71fsFKEGgLky9blk7I9qZh23hnRVECj1oJAVry9IK04bc2zyIEjUYpjRkUAQ="
20 - TEST_GROUPS=2
21 - CCACHE_COMPRESS=1
22 matrix:
23 - TRAVIS_CVC4=yes TRAVIS_CVC4_CHECK_PORTFOLIO=yes TRAVIS_WITH_LFSC=yes TRAVIS_CVC4_JAVA_API_TEST=yes TRAVIS_CVC4_CONFIG='production --enable-language-bindings=java,c --with-lfsc --with-portfolio --enable-gpl'
24 - TRAVIS_CVC4=yes TRAVIS_CVC4_CHECK_PORTFOLIO=yes TRAVIS_WITH_LFSC=yes TRAVIS_CVC4_JAVA_API_TEST=yes TRAVIS_CVC4_CONFIG='debug --enable-language-bindings=java,c --with-lfsc --with-portfolio --enable-gpl --disable-debug-symbols' TEST_GROUP=0
25 - TRAVIS_CVC4=yes TRAVIS_CVC4_CHECK_PORTFOLIO=yes TRAVIS_WITH_LFSC=yes TRAVIS_CVC4_CONFIG='debug --enable-language-bindings=java,c --with-lfsc --with-portfolio --enable-gpl --disable-debug-symbols' TEST_GROUP=1
26 - TRAVIS_CVC4=yes TRAVIS_WITH_LFSC=yes TRAVIS_CVC4_JAVA_API_TEST=yes TRAVIS_CVC4_CONFIG='debug --enable-language-bindings=java,c --with-lfsc --with-cln --enable-gpl --disable-debug-symbols'
27 - TRAVIS_CVC4=yes TRAVIS_CVC4_CONFIG='--disable-proof'
28 - TRAVIS_CVC4=yes TRAVIS_CVC4_DISTCHECK=yes TRAVIS_CVC4_CONFIG='--enable-proof'
29 addons:
30 apt:
31 sources:
32 - ubuntu-toolchain-r-test
33 packages: &common_deps
34 - libgmp-dev
35 - libboost-dev
36 - libboost-thread-dev
37 - swig
38 - libcln-dev
39 - openjdk-7-jdk
40 - antlr3
41 - libantlr3c-dev
42 - ant-optional
43 - cxxtest
44 - libreadline-dev
45 before_install:
46 - eval "${MATRIX_EVAL}"
47 # Clang does not play nice with ccache (at least the versions offered by
48 # Travis), use a workaround:
49 # https://github.com/travis-ci/travis-ci/issues/5383#issuecomment-224630584
50 - |
51 if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$CXX" == "clang++" ]; then
52 export CFLAGS="-Qunused-arguments"
53 export CXXFLAGS="-Qunused-arguments"
54 sudo ln -s $(which ccache) /usr/lib/ccache/clang
55 sudo ln -s $(which ccache) /usr/lib/ccache/clang++
56 fi
57 before_script:
58 - export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
59 - export PATH=$PATH:$JAVA_HOME/bin
60 - export JAVA_CPPFLAGS=-I$JAVA_HOME/include
61 - ./autogen.sh
62 script:
63 - ccache -M 1G
64 - ccache -z
65 - ${CC} --version
66 - ${CXX} --version
67 - |
68 echo "travis_fold:start:load_script"
69 normal="$(echo -e '\033[0m')" red="$normal$(echo -e '\033[01;31m')" green="$normal$(echo -e '\033[01;32m')"
70 configureCVC4() {
71 echo "CVC4 config - $TRAVIS_CVC4_CONFIG";
72 ./configure --enable-unit-testing $TRAVIS_CVC4_CONFIG ||
73 (echo; echo "Trying to print config.log"; cat builds/config.log; error "CONFIGURE FAILED");
74 }
75 error() {
76 echo;
77 echo "${red}${1}${normal}";
78 echo;
79 exit 1;
80 }
81 makeDistcheck() {
82 make V=1 -j2 distcheck CVC4_REGRESSION_ARGS='--no-early-exit' ||
83 error "DISTCHECK (WITH NEWTHEORY TESTS) FAILED";
84 }
85 makeCheck() {
86 make V=1 -j2 check CVC4_REGRESSION_ARGS='--no-early-exit' || error "BUILD/TEST FAILED";
87 }
88 makeCheckPortfolio() {
89 make V=1 -j2 check BINARY=pcvc4 CVC4_REGRESSION_ARGS='--fallback-sequential --no-early-exit' RUN_REGRESSION_ARGS= ||
90 error "PORTFOLIO TEST FAILED";
91 }
92 JavaApiTest() {
93 pushd test/java
94 local status=0
95 ant || status=1
96 popd
97 return $status
98 }
99 makeExamples() {
100 make V=1 -j2 examples || error "COULD NOT BUILD EXAMPLES${normal}";
101 }
102 addNewTheoryTest() {
103 contrib/new-theory test_newtheory || error "NEWTHEORY FAILED";
104 grep -q '^THEORIES *=.* test_newtheory' src/Makefile.theories || error "NEWTHEORY FAILED";
105 contrib/new-theory --alternate test_newtheory test_newalttheory || error "NEWTHEORY-ALTERNATE FAILED";
106 grep -q '^THEORIES *=.* test_newalttheory' src/Makefile.theories || error "NEWTHEORY-ALTERNATE FAILED";
107 }
108 run() {
109 echo "travis_fold:start:$1"
110 echo "Running $1"
111 $1 || exit 1
112 echo "travis_fold:end:$1"
113 }
114 [ -n "$TRAVIS_CVC4" ] && [ -n "$TRAVIS_WITH_LFSC" ] && run contrib/get-lfsc-checker
115 [ -n "$TRAVIS_CVC4" ] && [ -n "$TRAVIS_CVC4_DISTCHECK" ] && run addNewTheoryTest
116 [ -n "$TRAVIS_CVC4" ] && run configureCVC4
117 [ -n "$TRAVIS_CVC4" ] && [ -n "$TRAVIS_CVC4_DISTCHECK" ] && run makeDistcheck
118 [ -n "$TRAVIS_CVC4" ] && [ -z "$TRAVIS_CVC4_DISTCHECK" ] && run makeCheck && run makeExamples
119 [ -n "$TRAVIS_CVC4" ] && [ -n "$TRAVIS_CVC4_CHECK_PORTFOLIO" ] && run makeCheckPortfolio
120 # [ -n "$TRAVIS_CVC4" ] && [ -n "$TRAVIS_CVC4_JAVA_API_TEST" ] && run JavaApiTest
121 [ -n "$TRAVIS_COVERITY" ] && echo "Running coverity. Skipping the normal build."
122 [ -z "$TRAVIS_CVC4" ] && [ -z "$TRAVIS_COVERITY" ] && error "Unknown Travis-CI configuration"
123 echo "travis_fold:end:load_script"
124 - echo; echo "${green}EVERYTHING SEEMED TO PASS!${normal}"
125 - ccache -s
126 matrix:
127 fast_finish: true
128 include:
129 # Test with GCC7
130 # Note: TRAVIS_CVC4_JAVA_API_TEST is only active for TEST_GROUP=0 because
131 # test groups only apply to regression tests (no need to repeat the Java
132 # tests for both groups).
133 - addons:
134 apt:
135 sources:
136 - ubuntu-toolchain-r-test
137 packages:
138 - *common_deps
139 - g++-7
140 env:
141 - MATRIX_EVAL='CC=gcc-7 && CXX=g++-7'
142 - TRAVIS_CVC4=yes TRAVIS_CVC4_CHECK_PORTFOLIO=yes TRAVIS_WITH_LFSC=yes TRAVIS_CVC4_JAVA_API_TEST=yes TRAVIS_CVC4_CONFIG='debug --enable-language-bindings=java,c --with-lfsc --with-portfolio --enable-gpl --disable-debug-symbols' TEST_GROUP=0
143 - addons:
144 apt:
145 sources:
146 - ubuntu-toolchain-r-test
147 packages:
148 - *common_deps
149 - g++-7
150 env:
151 - MATRIX_EVAL='CC=gcc-7 && CXX=g++-7'
152 - TRAVIS_CVC4=yes TRAVIS_CVC4_CHECK_PORTFOLIO=yes TRAVIS_WITH_LFSC=yes TRAVIS_CVC4_CONFIG='debug --enable-language-bindings=java,c --with-lfsc --with-portfolio --enable-gpl --disable-debug-symbols' TEST_GROUP=1
153 # Rule for running Coverity Scan.
154 - os: linux
155 compiler: gcc
156 env:
157 - TRAVIS_COVERITY=yes CVC4_REGRESSION_ARGS='--no-early-exit'
158 addons:
159 # Need to duplicate as addons will be over written.
160 apt:
161 sources:
162 - ubuntu-toolchain-r-test
163 packages:
164 - *common_deps
165 coverity_scan:
166 project:
167 name: "CVC4/CVC4"
168 description: "Build submitted via Travis CI"
169 notification_email: timothy.alan.king@gmail.com
170 build_command_prepend: "./autogen.sh; ./configure --enable-unit-testing --enable-proof"
171 build_command: "make V=1 -j4"
172 branch_pattern: coverity_scan
173 after_failure:
174 - cat /home/travis/build/CVC4/CVC4/cov-int/build-log.txt
175
176 notifications:
177 email:
178 on_success: change
179 on_failure: always