forked from rust-lang/backtrace-rs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
114 lines (104 loc) · 3.77 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
language: rust
sudo: false
dist: trusty
matrix:
fast_finish: true
include:
# Test everything on stable linux
- rust: stable
addons:
sources:
# Provides clang-3.9
- llvm-toolchain-trusty-3.9
apt:
packages:
# Required for `bindgen`, which is required by `findshlibs`, which is
# required by the `gimli` feature.
- clang-3.9
script: &test_all
- cargo build --manifest-path backtrace-sys/Cargo.toml
- cargo build
- cargo test
- cargo test --no-default-features
- cargo test --no-default-features --features 'libunwind'
- cargo test --no-default-features --features 'libunwind dladdr'
- cargo test --no-default-features --features 'libunwind libbacktrace'
- cargo test --no-default-features --features 'unix-backtrace'
- cargo test --no-default-features --features 'unix-backtrace dladdr'
- cargo test --no-default-features --features 'unix-backtrace libbacktrace'
- cargo test --no-default-features --features 'serialize-serde std'
- cargo test --no-default-features --features 'serialize-rustc std'
- cargo test --no-default-features --features 'serialize-rustc serialize-serde std'
- cargo test --no-default-features --features 'cpp_demangle std'
- cargo test --no-default-features --features 'gimli-symbolize std'
- cd ./cpp_smoke_test && cargo test && cd ..
- cargo clean && cargo build
# Test everything on OSX as well as beta/nightly
- os: osx
script: *test_all
- rust: beta
script: *test_all
- rust: nightly
script: *test_all
# Make sure the default crate builds with 1.25.0
- rust: 1.25.0
script: cargo test
# Upload docs on nightly
- rust: nightly
script:
- pip install 'travis-cargo<0.2' --user && export PATH=$HOME/.local/bin:$PATH
- cargo doc --no-deps --all-features
after_success:
- travis-cargo doc-upload
# Cross-compile tests, not as comprehensive as above but gets us breadth of
# targets
- env: TARGET=aarch64-unknown-linux-gnu
- env: TARGET=arm-unknown-linux-gnueabihf
- env: TARGET=armv7-unknown-linux-gnueabihf
- env: TARGET=i586-unknown-linux-gnu
- env: TARGET=i686-unknown-linux-gnu
- env: TARGET=powerpc64-unknown-linux-gnu
- env: TARGET=powerpc-unknown-linux-gnu
- env: TARGET=x86_64-pc-windows-gnu
- env: TARGET=x86_64-unknown-linux-gnu
- env: TARGET=x86_64-unknown-linux-musl
# Cross compile Android targets from linux
- env: TARGET=arm-linux-androideabi
- env: TARGET=armv7-linux-androideabi
- env: TARGET=aarch64-linux-android
- env: TARGET=i686-linux-android
- env: TARGET=x86_64-linux-android
# Build iOS targets from OSX
- env: TARGET=aarch64-apple-ios SDK=iphoneos
os: osx
script: &ios-build
- rustup target add $TARGET
- export SDK_PATH=`xcrun --show-sdk-path --sdk $SDK`
- export RUSTFLAGS="-C link-arg=-isysroot -C link-arg=$SDK_PATH"
- cargo test --no-run --target $TARGET
- env: TARGET=armv7-apple-ios SDK=iphoneos
os: osx
script: *ios-build
- env: TARGET=armv7s-apple-ios SDK=iphoneos
os: osx
script: *ios-build
- env: TARGET=i386-apple-ios SDK=iphonesimulator
os: osx
script: *ios-build
- env: TARGET=x86_64-apple-ios SDK=iphonesimulator
os: osx
script: *ios-build
- env: TARGET=wasm32-unknown-unknown
script: cargo build --target $TARGET
install:
- if [ "$TARGET" != "" ]; then rustup target add $TARGET; fi
# docker cross-compilation targets
script:
- cargo generate-lockfile
- ci/run-docker.sh $TARGET
notifications:
email:
on_success: never
branches:
only:
- master