forked from openkylin/rust-base64
51 lines
1.6 KiB
YAML
51 lines
1.6 KiB
YAML
|
---
|
||
|
language: rust
|
||
|
dist: trusty
|
||
|
sudo: required
|
||
|
|
||
|
matrix:
|
||
|
include:
|
||
|
- rust: 1.34.0
|
||
|
# cfg(doctest) is experimental in 1.39 but ignored with 1.34.0, and that snuck in when 1.39.0 wasn't tested
|
||
|
- rust: 1.39.0
|
||
|
- rust: stable
|
||
|
- rust: beta
|
||
|
- rust: nightly
|
||
|
addons:
|
||
|
apt:
|
||
|
packages:
|
||
|
# cargo-tarpaulin needs this
|
||
|
- libssl-dev
|
||
|
install:
|
||
|
# For test coverage. In install step so that it can use cache.
|
||
|
- cargo tarpaulin --version || RUSTFLAGS="--cfg procmacro2_semver_exempt" cargo install --force cargo-tarpaulin
|
||
|
- cargo +nightly install cargo-fuzz
|
||
|
|
||
|
# no_std
|
||
|
- rust: stable
|
||
|
env: TARGET="--target thumbv6m-none-eabi" FEATURES="--no-default-features --features alloc"
|
||
|
install:
|
||
|
- rustup target add thumbv6m-none-eabi
|
||
|
|
||
|
cache: cargo
|
||
|
|
||
|
env:
|
||
|
# prevent cargo fuzz list from printing with color
|
||
|
- TERM=dumb
|
||
|
|
||
|
script:
|
||
|
- cargo build --verbose $TARGET --no-default-features
|
||
|
- cargo build --verbose $TARGET $FEATURES
|
||
|
- 'if [[ -z "$TARGET" ]]; then cargo test --verbose; fi'
|
||
|
- 'if [[ -z "$TARGET" ]]; then cargo doc --verbose; fi'
|
||
|
- 'if [[ "$TRAVIS_RUST_VERSION" = nightly ]]; then cargo bench --no-run; fi'
|
||
|
# run for just a second to confirm that it can build and run ok
|
||
|
- 'if [[ "$TRAVIS_RUST_VERSION" = nightly ]]; then cargo fuzz list | xargs -L 1 -I FUZZER cargo fuzz run FUZZER -- -max_total_time=1; fi'
|
||
|
|
||
|
after_success: |
|
||
|
if [[ "$TRAVIS_RUST_VERSION" = nightly ]]; then
|
||
|
# Calculate test coverage
|
||
|
cargo tarpaulin --out Xml
|
||
|
bash <(curl -s https://codecov.io/bash)
|
||
|
fi
|