forked from seqan/seqan3
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
87 lines (76 loc) · 1.82 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
version: ~> 1.0
os: linux
dist: focal
language: cpp
branches:
only:
- master
git:
depth: 1
quiet: true
submodules: true
cache:
apt: true
ccache: true
addons:
apt:
sources:
- sourceline: 'ppa:ubuntu-toolchain-r/test'
- sourceline: 'ppa:ubuntu-toolchain-r/ppa'
packages:
- gcc-10
arch:
- arm64
- s390x
- ppc64le
env:
global:
- CXX=g++-10
- CC=gcc-10
jobs:
- BUILD=unit
- BUILD=snippet
- BUILD=performance
- BUILD=header
jobs:
allow_failures:
- os: linux
fast_finish: true
install:
- ccache --version
- $CXX -v
- cmake --version
before_script:
- mkdir ../seqan3-build
- cd ../seqan3-build
- |
cmake ../seqan3/test/${BUILD} -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS="-Wno-psabi" \
-DSEQAN3_VERBOSE_TESTS=OFF \
-DSEQAN3_BENCHMARK_MIN_TIME=0.01
- |
case "${BUILD}" in
unit) make -j2 gtest_build;;
snippet) make -j2 gtest_build;;
performance) make -j2 gbenchmark_build;;
header) make -j2 gtest_build gbenchmark_build;;
esac
# The runners with exotic architecture have fewer memory available (around 3 GB).
# Usually, we can build everything using 2 threads, but if we are unfortunate, something gets killed.
# In this case, we just build the killed targets with 1 thread:
# make -k -j2 || make -k
# The same applies to running ctest.
script:
- export SEQAN3_NO_VERSION_CHECK=1
- export CCACHE_COMPRESS=true
- export CCACHE_COMPRESSLEVEL=6
- export CCACHE_MAXSIZE=500M
- make -k -j2 || make -k
- |
if [[ "${BUILD}" =~ ^(snippet)$ ]]; then
ctest . --output-on-failure
else
ctest . -j2 --output-on-failure || ctest . --rerun-failed --output-on-failure
fi
after_script:
- ccache -s