Jeff Vander Stoep | 0029ba4 | 2021-06-25 09:40:28 +0200 | [diff] [blame] | 1 | --- |
| 2 | language: rust |
| 3 | dist: trusty |
| 4 | sudo: required |
| 5 | |
| 6 | matrix: |
| 7 | include: |
| 8 | - rust: 1.34.0 |
| 9 | # cfg(doctest) is experimental in 1.39 but ignored with 1.34.0, and that snuck in when 1.39.0 wasn't tested |
| 10 | - rust: 1.39.0 |
| 11 | - rust: stable |
| 12 | - rust: beta |
| 13 | - rust: nightly |
| 14 | addons: |
| 15 | apt: |
| 16 | packages: |
| 17 | # cargo-tarpaulin needs this |
| 18 | - libssl-dev |
| 19 | install: |
| 20 | # For test coverage. In install step so that it can use cache. |
| 21 | - cargo tarpaulin --version || RUSTFLAGS="--cfg procmacro2_semver_exempt" cargo install --force cargo-tarpaulin |
| 22 | - cargo +nightly install cargo-fuzz |
| 23 | |
| 24 | # no_std |
| 25 | - rust: stable |
| 26 | env: TARGET="--target thumbv6m-none-eabi" FEATURES="--no-default-features --features alloc" |
| 27 | install: |
| 28 | - rustup target add thumbv6m-none-eabi |
| 29 | |
| 30 | cache: cargo |
| 31 | |
| 32 | env: |
| 33 | # prevent cargo fuzz list from printing with color |
| 34 | - TERM=dumb |
| 35 | |
| 36 | script: |
| 37 | - cargo build --verbose $TARGET --no-default-features |
| 38 | - cargo build --verbose $TARGET $FEATURES |
| 39 | - 'if [[ -z "$TARGET" ]]; then cargo test --verbose; fi' |
| 40 | - 'if [[ -z "$TARGET" ]]; then cargo doc --verbose; fi' |
| 41 | - 'if [[ "$TRAVIS_RUST_VERSION" = nightly ]]; then cargo bench --no-run; fi' |
| 42 | # run for just a second to confirm that it can build and run ok |
| 43 | - 'if [[ "$TRAVIS_RUST_VERSION" = nightly ]]; then cargo fuzz list | xargs -L 1 -I FUZZER cargo fuzz run FUZZER -- -max_total_time=1; fi' |
| 44 | |
| 45 | after_success: | |
| 46 | if [[ "$TRAVIS_RUST_VERSION" = nightly ]]; then |
| 47 | # Calculate test coverage |
| 48 | cargo tarpaulin --out Xml |
| 49 | bash <(curl -s https://codecov.io/bash) |
| 50 | fi |