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