language: rust # Need to cache the whole `.cargo` directory to keep .crates.toml for # cargo-update to work cache: directories: - $HOME/protobuf - $HOME/.cargo # But don't cache the cargo registry before_cache: - rm -rf $HOME/.cargo/registry rust: - stable - beta matrix: # Since this item is allowed to fail, don't wait for it's result to mark the # build complete. fast_finish: true allow_failures: - env: NAME='nightly' - env: NAME='kcov' include: - env: NAME='nightly' rust: nightly - env: NAME='clippy' rust: stable before_script: - rustup component add clippy script: - cargo clippy --all-targets --all-features -- -D warnings - env: NAME='kcov' sudo: required # travis-ci/travis-ci#9061 before_script: - cargo install cargo-update || echo "cargo-update already installed" - cargo install cargo-kcov || echo "cargo-kcov already installed" - cargo install-update -a script: - cargo kcov --print-install-kcov-sh | sh - cargo update # Creates `Cargo.lock` needed by next command - cargo kcov --verbose --coveralls -- --verify --exclude-pattern=/.cargo,/usr/lib,src/proto addons: apt: packages: - libcurl4-openssl-dev - libdw-dev - binutils-dev - libiberty-dev - zlib1g-dev env: global: - RUSTFLAGS="-C link-dead-code" script: - cargo update - cargo build --verbose --all-features - cargo test --verbose --all-features - cargo doc --verbose --all-features --no-deps before_install: - export PATH=$PATH:$HOME/protobuf/bin - export PROTOC_VERSION=$(cat PROTOC_VERSION) - bash ci/install_protobuf.sh