forked from newsboat/newsboat
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
84 lines (74 loc) · 2.57 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
language: rust
rust: stable
cache:
directories:
- $HOME/.cargo/registry
before_cache:
- rm -rf $HOME/.cargo/registry/index
addons:
apt:
packages: &global_deps
- libsqlite3-dev
- libcurl4-openssl-dev
- libxml2-dev
- libstfl-dev
- libjson-c-dev
- libncursesw5-dev
- asciidoctor
addons:
apt:
packages: &clang_deps
- *global_deps
- g++ # required for some niceties in C++ standard library
env:
- CXXFLAGS='-fstack-clash-protection -D_GLIBCXX_ASSERTIONS -Wformat -Wformat-security -fstack-protector-strong --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2'
matrix:
fast_finish: true
include:
- name: "Test Coverage"
compiler: clang-8
os: linux
dist: bionic
rust: nightly
addons:
apt:
sources:
- sourceline: "ppa:ubuntu-toolchain-r/test"
packages:
- clang-8
- llvm-8
- *clang_deps
env:
- COMPILER=clang++-8
- REPORT_COVERAGE=yes
before_install:
- cargo install grcov
# Can't have these in the `env` section above, because these settings break `cargo install`
- export CARGO_INCREMENTAL=0
- export RUSTFLAGS="-Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort"
- export RUSTDOCFLAGS="-Cpanic=abort"
- name: "i18nspector"
addons:
apt:
packages:
- i18nspector
env:
- CHECKS=i18nspector
install:
- export CXX=$COMPILER
- cd ${TRAVIS_BUILD_DIR}
script:
- cd ${TRAVIS_BUILD_DIR}
# CI builds take a while to provision, install dependencies and compile our
# stuff. To maximize the benefits, we ask Make to process as many rules as
# possible before failing. This enables developers to fix more errors before
# re-submitting the code to CI, which should increase throughput.
- if [ -z "$CHECKS" ]; then make -j2 PROFILE=1 --keep-going all test ; fi
# We want to run both C++ and Rust tests, but we also want this entire
# command to fail if some test suite fails. That's why we store the C++'s
# exit code and chain it to Rust's in the end.
- if [ -z "$CHECKS" ]; then ( cd test && ./test --order rand ); ret=$?; (cargo test) && sh -c "exit $ret" ; fi
- if [ "$CHECKS" = "i18nspector" ]; then make run-i18nspector | tee i18nspector.log && if `egrep '^(E|W):' i18nspector.log >/dev/null 2>&1` ; then false else true; fi ; fi
after_success:
- cd ${TRAVIS_BUILD_DIR}
- if [ -n "${REPORT_COVERAGE}" ]; then ./submit-to-coveralls.sh ; fi