-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.travis.yml
146 lines (139 loc) · 5.91 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
language: cpp
env:
global:
# BB_TOKEN
- secure: "RQfTLtJwuLRkSeHYSv4LN2apLwJ0EimXzSGrndaNXc70qg7hcRbg7LxKNYFxvOWkgyW8F2u7yVzZN+uBM8EdB30ga4+EqY8QLwWoss4BDb5fg7mgSa5CKLqprnTTjqlyIvgXVT0jKrtYBk7KybE56cSRDze3kJ2GwgxQ46B4wY8="
# DREALREPO
- secure: "Q0UZnALjy+EboS3XBUaH+liMrCITbDXybFGmriDOLPKGPmAeNxN9lCXLyl4T9ZOPNpjTEAeSBSDkmxKuBTbFGFEAOhamsTZQnLkXzFtIJNXxF13c/ubMPwkY0PgLrayvqJdmNcLqM1goz7OuLrMg/rb0JM7JVOScdn++7OfJae8="
# GH_TOKEN
- secure: "dgm4Dvk64PhJN0dWMdXoQVP0ObANaarW3IvGqxvJ4jADTRSZzFqeA4hYM3cLAb2Rkmx2ftKdQqFbRUfWysT26Zd3CykbdgqmNgYN+kHntkeUmGvoB8SidCwzwo1VsU8f53DG//bYw3ZpBJZY/ljfiehdsi4BTxrIcX7pW1DQZ0Q="
# COVERALLS_REPO_TOKEN
- secure: "CZoXk4GAyGWxIapf+aSI0FhDr21McRxuih8X0kIikkSRLdNPOAlwdH0lj44bWF26T6RGI+GmayCVOMaD+Z53Sas/0tVtMgI1tu5LCgGn/kvCECi94R3n/u8V5s9eBcWps0QWujqG1IlLVPzzMbDWiP7SyIBBXcDVvWh91L3uJh0="
matrix:
- TRIGGER_OSX=TRUE
TRIGGER_BB=TRUE
CMAKE_CXX_COMPILER=g++-4.8 CMAKE_C_COMPILER=gcc-4.8
CMAKE_BUILD_TYPE=RELEASE
USE_LATEST_EGLIBC=TRUE
- CMAKE_CXX_COMPILER=g++-4.8 CMAKE_C_COMPILER=gcc-4.8
CMAKE_BUILD_TYPE=Debug
USE_LATEST_EGLIBC=TRUE
TESTCOV=ON
- CMAKE_CXX_COMPILER=clang++-3.3 CMAKE_C_COMPILER=clang-3.3
CMAKE_BUILD_TYPE=RELEASE
USE_LATEST_EGLIBC=TRUE
- CMAKE_CXX_COMPILER=clang++-3.3 CMAKE_C_COMPILER=clang-3.3
CMAKE_BUILD_TYPE=DEBUG
USE_LATEST_EGLIBC=TRUE
install:
# Check EGLIBC Version
- ldd --version
# PUSH TO BACKUP REPO
- if [[ $DREALREPO == BLESSED && $TRIGGER_BB == TRUE ]]; then
git push -q https://soonhok:${BB_TOKEN}@bitbucket.org/soonhok/dReal-backup.git +master;
fi
# TRIGGER OSX Build
- if [[ $DREALREPO == BLESSED && $TRIGGER_OSX == TRUE ]]; then
MSG=`git log --pretty=oneline --abbrev-commit -n 1 | cut -d ' ' -f 2-`;
cp .travis.yml /tmp/.travis.temp.yml;
cp .travis.osx.yml .travis.yml;
git config --global user.email "notifications@travis-ci.org";
git config --global user.name "Travis CI";
git add .travis.yml;
git commit -m "$MSG";
git push -q https://soonhokong:${GH_TOKEN}@github.com/soonhokong/dReal-osx.git +HEAD:master;
mv /tmp/.travis.temp.yml .travis.yml;
git reset --hard HEAD~;
fi
# Add ppas
- sudo add-apt-repository --yes ppa:h-rayflood/llvm
- sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test
- sudo add-apt-repository --yes ppa:dns/gnu
- sudo add-apt-repository --yes ppa:avsm/ppa
- sudo add-apt-repository --yes ppa:kalakris/cmake
- sudo apt-get -qq update
- sudo apt-get -qq install libstdc++-4.8-dev
- if [[ $CMAKE_CXX_COMPILER == g++-4.8 ]]; then until sudo apt-get -qq install g++-4.8; do echo retry; done fi
- if [[ $CMAKE_CXX_COMPILER == clang++-3.3 ]]; then until sudo apt-get -qq install clang-3.3; do echo retry; done fi
# Install Bison, Flex, CMAKE
- sudo apt-get -qq install bison flex wget cmake
# Ocaml
- sudo apt-get -qq install ocaml opam
- yes | opam init
- eval `opam config env`
- opam update
- yes | opam install ocamlfind batteries
# EGLIBC
- if [[ $USE_LATEST_EGLIBC == TRUE ]]; then
wget http://dreal.cs.cmu.edu/required_packages/eglibc-2.17.tar.bz2;
tar xfj eglibc-2.17.tar.bz2 -C /tmp;
sudo ln -s /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc_s.so /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc_s.so.1;
fi
# TESTCOV - lcov
- if [[ $TESTCOV == ON ]]; then
wget http://downloads.sourceforge.net/ltp/lcov-1.10.tar.gz;
tar xvfz lcov-1.10.tar.gz;
sudo cp -v lcov-1.10/bin/{lcov,genpng,gendesc,genhtml,geninfo} /usr/bin/;
sudo chmod 777 /usr/bin/lcov /usr/bin/genhtml /usr/bin/geninfo /usr/bin/genpng /usr/bin/gendesc;
rm -rf lcov-1.10.tar.gz lcov-1.10;
sudo cp -v `which gcov-4.8` `which gcov`;
fi
before_script:
- SITE=Ubuntu12.04@Travis
- if [[ $CMAKE_BUILD_TYPE == RELEASE ]]; then
BUILD_TYPE=Release;
else
BUILD_TYPE=Debug;
fi
- BUILD_NAME=${TRAVIS_BRANCH}_${CMAKE_CXX_COMPILER}_${BUILD_TYPE}
- GIT_COMMIT=`git log --oneline -n 1 | cut -d ' ' -f 1`
- GIT_SUBJECT=`git log --oneline -n 1 | cut -d ' ' -f 2-`
- GIT_SUBJECT=${GIT_SUBJECT//\"/\\\"}
- GIT_SUBJECT=${GIT_SUBJECT//,/\,}
- GIT_SUBJECT=$(echo -e $(printf '%q' "$GIT_SUBJECT"))
script:
# compile dReal
- mkdir build
- cd build
- CMAKE_CMD_OPTION="-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_PROGRAM_PATH=/usr/bin"
- if [[ $USE_LATEST_EGLIBC == TRUE ]]; then
CMAKE_CMD_OPTION="$CMAKE_CMD_OPTION -DEGLIBCPATH=/tmp/eglibc";
fi
- if [[ $TESTCOV == ON ]]; then
CMAKE_CMD_OPTION="$CMAKE_CMD_OPTION -DTESTCOV=ON";
fi
- cmake $CMAKE_CMD_OPTION ../src
- ctest -D ExperimentalConfigure
- CONFIG_FILE=DartConfiguration.tcl
- sed -i "s/^Site:.*/Site:$SITE/" $CONFIG_FILE
- sed -i "s/BuildName:.*/BuildName:$BUILD_NAME/" $CONFIG_FILE
- ctest -D ExperimentalConfigure
- sed -i "s/^Site:.*/Site:$SITE/" $CONFIG_FILE
- sed -i "s/BuildName:.*/BuildName:$BUILD_NAME/" $CONFIG_FILE
- ctest -D ExperimentalBuild -VV
- cd ..
# compile tools
- make -C tools
# compile proof checker
- make -C tools/proofcheck/checker
after_script:
- cd build
- ctest -D ExperimentalTest -VV
- echo $PATH
- export PATH=/usr/bin:$PATH
- if [[ $DREALREPO == BLESSED && $TESTCOV == ON ]]; then
ctest -D ExperimentalCoverage;
make cov;
npm install coveralls --save;
cat coverage.info.cleaned | ./node_modules/coveralls/bin/coveralls.js;
fi
- find Testing -name "*.xml" -exec sed -i "s,Generator=\".*\",Generator=\"${GIT_COMMIT}###${GIT_SUBJECT}\"," {} ";"
- find Testing \( -name "LastTest_*.log" -o -name "LastDynamicAnalysis_*.log" \) -exec sh -c 'TMP=`mktemp /tmp/ctesttmp_XXXX`; ../script/demangle_cpptype.py {} > $TMP; mv -v $TMP {}' ";"
- ctest -D ExperimentalSubmit
- cd ..
notifications:
email:
recipients:
- dreal-dev@googlegroups.com
on_success: always
on_failure: always