-
Notifications
You must be signed in to change notification settings - Fork 7
/
.gitlab-ci.yml
210 lines (184 loc) · 4.58 KB
/
.gitlab-ci.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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
before_script:
- scripts/show_linux_distribution_and_install_packages.sh
- NUM_JOBS=$[`nproc`-1]
- if [ "$NUM_JOBS" -lt 1 ]; then NUM_JOBS=1; fi
- GIT_SSL_NO_VERIFY=true git submodule sync
- GIT_SSL_NO_VERIFY=true git submodule update --init
### templates for docker images
.ubuntu16: &ubuntu16
image: ubuntu:xenial
variables:
JDK_PACKAGE_NAME: openjdk-8-jdk
tags:
- docker
.ubuntu16_x86: &ubuntu16_x86
image: m0elnx/ubuntu-32bit:latest
variables:
JDK_PACKAGE_NAME: openjdk-8-jdk
tags:
- docker
.ubuntu14: &ubuntu14
image: ubuntu:trusty
variables:
JDK_PACKAGE_NAME: openjdk-7-jdk
tags:
- docker
.centos7: ¢os7
image: centos:centos7
variables:
JDK_PACKAGE_NAME: java-1.8.0-openjdk
tags:
- docker
.debian8: &debian8
image: debian:jessie
variables:
JDK_PACKAGE_NAME: openjdk-8-jdk
tags:
- docker
.fedora25: &fedora25
image: fedora:25
variables:
JDK_PACKAGE_NAME: java-1.8.0-openjdk
tags:
- docker
### template and jobs for the default build (currently with Boolector and CUDD) that should be testes on all images
.build_default:
script: &build_default
- make -j $NUM_JOBS
- make test
build_default_ubuntu16:
<<: *ubuntu16
except:
- /.*_fastci$/
script: *build_default
build_default_ubuntu14:
<<: *ubuntu14
only:
- development
- /.*_ci$/
script: *build_default
build_default_centos7:
<<: *centos7
only:
- development
- /.*_ci$/
script: *build_default
build_default_debian8:
<<: *debian8
only:
- development
- /.*_ci$/
script: *build_default
build_default_fedora25:
<<: *fedora25
only:
- development
- /.*_ci$/
script: *build_default
### template and jobs for a fast build
.fast_build:
script: &fast_build
- ./bootstrap.sh -d deps -b cudd -b sword build -DCRAVE_TIMEOUT=60 -DCRAVE_BUILD_EXAMPLES=off
- cd build
- make -j $NUM_JOBS
- ctest --schedule-random
fast_build_ubuntu14:
<<: *ubuntu14
script: *fast_build
### template and jobs for a build in RELEASE mode
.build_release:
script: &build_release
- ./bootstrap.sh -d deps -m RELEASE --systemc -b cudd -b sword build -DCRAVE_TIMEOUT=60 -DCRAVE_EXAMPLES_TIMEOUT=180
- make -j $NUM_JOBS
- make test
build_release_centos7:
<<: *centos7
only:
- development
script: *build_release
### template and jobs for a very fast build with installation
.build_install:
script: &build_install
- ./bootstrap.sh -d deps --systemc -b cudd -b sword build -DCRAVE_BUILD_EXAMPLES=off -DCRAVE_ENABLE_TESTS=off
- cd build
- make -j $NUM_JOBS install
- CRAVE_INSTALL_DIR=`pwd`/root/share/crave
- git clone --depth 1 https://github.com/hoangmle/test-crave-install.git
- cd test-crave-install
- cmake . -Dcrave_DIR=$CRAVE_INSTALL_DIR
- make -j $NUM_JOBS
- ./main 2>result || true
- cat result
- TMP=`grep 'German' result`
- if [ "$TMP" == "" ]; then exit 1; fi
build_install_centos7:
<<: *centos7
only:
- development
script: *build_install
### optional builds in the following
build_default_stp:
<<: *ubuntu16
only:
- development
script:
- CRAVE_SOLVERS='cudd stp' make -j $NUM_JOBS
- make test
allow_failure: true
build_cvc4:
<<: *ubuntu16
only:
- development
script:
- ./bootstrap.sh -d deps --systemc -b cudd -b cvc4 build -DCRAVE_TIMEOUT=60 -DCRAVE_EXAMPLES_TIMEOUT=180
- cd build
- make -j $NUM_JOBS
- ctest --schedule-random
allow_failure: true
build_yices2:
<<: *ubuntu16
only:
- development
script:
- ./bootstrap.sh -d deps --systemc -b cudd -b yices2 build -DCRAVE_TIMEOUT=60 -DCRAVE_EXAMPLES_TIMEOUT=180
- cd build
- make -j $NUM_JOBS
- ctest --schedule-random
allow_failure: true
build_z3:
<<: *ubuntu16
only:
- development
script:
- ./bootstrap.sh -d deps --systemc -b cudd -b z3 build -DCRAVE_TIMEOUT=60 -DCRAVE_EXAMPLES_TIMEOUT=180
- cd build
- make -j $NUM_JOBS
- ctest --schedule-random
allow_failure: true
build_ubuntu16_x86:
<<: *ubuntu16_x86
only:
- development
script:
- ./bootstrap.sh -d deps -b cudd -b boolector build -DCRAVE_TIMEOUT=60 -DCRAVE_EXAMPLES_TIMEOUT=180
- cd build
- make -j $NUM_JOBS
- ctest --schedule-random
allow_failure: true
### Windows build with Visual Studio
build_windows:
except:
- /.*_fastci$/
before_script:
- git submodule sync
- git submodule update --init
script:
- call "%VS140COMNTOOLS%VsDevCmd.bat"
- rmdir build /s /q
- mkdir build
- cd build
- cmake .. -DBOOST_ROOT="C:\deps\boost_1_60_0" -DmetaSMT_ENABLE_TESTS=off -DZ3_DIR="C:\deps\z3-4.5.0-x86-win" -DCRAVE_TIMEOUT=60 -DCRAVE_EXAMPLES_TIMEOUT=180
- cmake --build . --config Debug
- ctest
tags:
- windows