-
Notifications
You must be signed in to change notification settings - Fork 162
/
.travis.yml
166 lines (148 loc) · 6 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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
# Force Ubuntu 16.04 "Xenial" to get newer GCC, binutils etc.
dist: xenial
language: c
env:
global:
- CFLAGS="--coverage -O2 -g"
- CXXFLAGS="--coverage -O2 -g"
- LDFLAGS="--coverage"
# default config flags: enable debug asserts
- CONFIGFLAGS="--enable-debug"
- COVERALLS_PARALLEL=true
addons:
apt_packages:
- libgmp-dev
- libreadline-dev
- zlib1g-dev
- python
- python-pip
- perl
#
# The following test jobs are roughly sorted by duration, from longest to
# shortest.
#
matrix:
include:
# general test suite (subsumes testinstall tests, too)
- env: TEST_SUITES="docomp testtravis"
# the same in 32 bit mode, and with debugging turned off, to (a) make it
# a lot faster, and (b) to make sure nobody accidentally puts some vital
# computing into code that is only run when debugging is on.
- env: TEST_SUITES="docomp testtravis" ABI=32 CONFIGFLAGS=""
addons:
apt_packages:
- gcc-multilib
- g++-multilib
- libgmp-dev:i386
- libreadline-dev:i386
- zlib1g-dev:i386
# HPC-GAP builds (for efficiency, we don't build all combinations)
- env: TEST_SUITES="docomp testtravis" ABI=64 HPCGAP=yes
# compile packages and run GAP tests
# don't use --enable-debug to prevent the tests from taking too long
- env: TEST_SUITES="testpackages testinstall-loadall" ABI=64
dist: bionic # avoid 'atexit' linker error in packages using C++ code
addons:
apt_packages:
- gcc-multilib
- g++-multilib
- libgmp-dev
- libreadline-dev
- zlib1g-dev
- libboost-dev # for NormalizInterface
- libmpfr-dev # for float
- libmpfi-dev # for float
- libmpc-dev # for float
#- libfplll-dev # for float
- pari-gp # for alnuth
- libzmq3-dev # for ZeroMQInterface
# compile packages and run GAP tests in 32 bit mode
# it seems profiling is having trouble collecting the coverage data here, so we
# use NO_COVERAGE=1
- env: TEST_SUITES="testpackages testinstall-loadall" ABI=32 NO_COVERAGE=1
dist: bionic # avoid 'atexit' linker error in packages using C++ code
addons:
apt_packages:
- gcc-multilib
- g++-multilib
- libgmp-dev:i386
- libreadline-dev:i386
- zlib1g-dev:i386
- libncurses5-dev:i386 # for Browse
- libcurl4-openssl-dev:i386 # for curlInterface
- libboost-dev:i386 # for NormalizInterface
- libmpfr-dev:i386 # for float
- libmpfi-dev:i386 # for float
- libmpc-dev:i386 # for float
#- libfplll-dev:i386 # for float
- pari-gp:i386 # for alnuth
- libzmq3-dev:i386 # for ZeroMQInterface
# OS X builds: since those are slow and limited on Travis, we only run testinstall
- env: TEST_SUITES="docomp testinstall"
os: osx
compiler: clang
# test creating the manual
- env: TEST_SUITES=makemanuals
addons:
apt_packages:
- texlive-latex-base
- texlive-latex-recommended
- texlive-latex-extra
- texlive-extra-utils
- texlive-fonts-recommended
- texlive-fonts-extra
# run tests contained in the manual
- env: TEST_SUITES=testmanuals
# run bugfix regression tests
# Also Turn on '--enable-memory-checking' to make sure GAP compiles with the flag enabled.
# We do not actually test the memory checking, as this slows down GAP too much.
- env: TEST_SUITES=testbugfix CONFIGFLAGS="--enable-memory-checking"
# out of tree builds -- these are mainly done to verify that the build
# system work in this scenario. Since we don't expect the test results to
# vary compared to the in-tree builds, we turn off coverage reporting by
# setting NO_COVERAGE=1; this has the extra benefit of also running the
# tests at least once with the ReproducibleBehaviour option turned off.
#
# The '--enable-valgrind' checks that GAP builds and runs correctly when
# compiled with valgrind support. We do not actually run any tests using
# valgrind, as it is too slow.
#
# Also change the compiler to GCC 4.7, to ensure we stay compatible
# with that older version.
- env: TEST_SUITES="docomp testinstall" NO_COVERAGE=1 ABI=64 BUILDDIR=build CONFIGFLAGS="--enable-valgrind CC=gcc-4.7 CXX=g++-4.7"
addons:
apt_packages:
- gcc-4.7
- g++-4.7
- valgrind
# same as above, but in 32 bit mode, also turn off debugging (see elsewhere in this file for
# an explanation).
- env: TEST_SUITES="docomp testinstall" NO_COVERAGE=1 ABI=32 BUILDDIR=build CONFIGFLAGS=""
addons:
apt_packages:
- gcc-multilib
- g++-multilib
#- libgmp-dev:i386 # do not install GMP, to test that GAP can build its own
#- libreadline-dev:i386 # do not install readline, to test that GAP can be compiled and run without it
#- zlib1g-dev::i386 # do not install zlib, to test that GAP can build its own
# test error reporting and compiling as well as libgap
- env: TEST_SUITES="testspecial test-compile testlibgap testkernel"
# test Julia integration
- env: TEST_SUITES="testinstall" JULIA=yes CONFIGFLAGS="--disable-Werror"
script:
- set -e
- etc/travis_fastfail.sh
- pip install --user gcovr==4.1
- bash etc/ci-prepare.sh
- bash etc/ci.sh
after_script:
- set -e
- bash etc/ci-gather-coverage.sh
- bash etc/ci-run-codecov.sh
notifications:
slack:
secure: Nvt9q2kZ/n7HyFeEYt7rvXMBLIR3AqSbQ54UeoU2UFrF+y0vJONChfa0csneyXPApH+objSUgS8ZW3g4gRiKtnO1jzQq9XDe895HtadY4vxYrduRLiwqI4o0k9KFVBPX7uIUXT22qIaAYBFC93m36zQKIAVDFzYuPoQfTWY3Yww=
on_pull_requests: false
on_success: change # default: always
on_failure: change # default: always
webhooks: https://coveralls.io/webhook