language: rust rust: # error on #[non_exhaustive] being "experimental" # - 1.36.0 # - 1.37.0 # error on cfg(doctest) # - 1.38.0 # - 1.39.0 - 1.40.0 - 1.41.0 - 1.42.0 - 1.43.0 - 1.44.0 - 1.45.0 - 1.46.0 - 1.47.0 - 1.48.0 - 1.49.0 - 1.50.0 - 1.51.0 - 1.52.0 - stable - beta - nightly matrix: allow_failures: - rust: nightly include: # Rustfmt - rust: stable install: - rustup component add rustfmt-preview before_script: - cargo fmt --version script: - cargo fmt -- --check env: - CHECK_FORMAT=true # Clippy - rust: stable install: - rustup component add clippy-preview script: # Fail if clippy output contains "error:" or "warning:" - cargo clippy 2>&1 | tee ./clippy.out && ! grep -qe "error:\|warning:" ./clippy.out env: - CHECK_SYNTAX=true # Test coverage (with Tarpaulin) - rust: stable # To avoid "Error: EPERM: operation not permitted" error (see https://github.com/valery-barysok/session-file-store/issues/58) sudo: true install: - RUSTFLAGS="--cfg procmacro2_semver_exempt" cargo install cargo-tarpaulin --force script: - cargo tarpaulin -v --ciserver travis-ci --coveralls $TRAVIS_JOB_ID env: - COVERAGE_MEASUREMENT=true script: - cargo test # Need to cache the whole `.cargo` directory to keep .crates.toml for # cargo-update to work cache: directories: - /home/travis/.cargo # But don't cache the cargo registry before_cache: - rm -rf /home/travis/.cargo/registry addons: apt: packages: - libssl-dev # Required for tarpaulin