115 lines
2.5 KiB
YAML
115 lines
2.5 KiB
YAML
language: rust
|
|
|
|
cache: cargo
|
|
|
|
sudo: required
|
|
|
|
rust:
|
|
- stable
|
|
- beta
|
|
- nightly
|
|
|
|
os:
|
|
- linux
|
|
|
|
dist: trusty
|
|
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- libssl-dev
|
|
- libudev-dev
|
|
- libgbm-dev
|
|
- libxkbcommon-dev
|
|
- libegl1-mesa-dev
|
|
|
|
before_install:
|
|
- sudo add-apt-repository -y ppa:wayland.admin/daily-builds
|
|
- sudo apt-get update -qq || echo "Ignoring failed apt-get update..."
|
|
- sudo apt-get install -y libwayland-dev libinput-dev
|
|
|
|
branches:
|
|
only:
|
|
- master
|
|
|
|
env:
|
|
global:
|
|
- RUST_BACKTRACE=1
|
|
matrix:
|
|
- FEATURES=""
|
|
# test individual features
|
|
- FEATURES="backend_winit"
|
|
- FEATURES="backend_drm"
|
|
- FEATURES="backend_libinput"
|
|
- FEATURES="renderer_glium"
|
|
# test default features
|
|
- FEATURES="default"
|
|
# test all features simultaneously
|
|
- FEATURES="all"
|
|
|
|
matrix:
|
|
include:
|
|
# special features for lint & fmt
|
|
- rust: nightly
|
|
env: FEATURES="cargo-fmt"
|
|
- rust: nightly
|
|
env: FEATURES="cargo-clippy"
|
|
allow_failures:
|
|
- rust: nightly
|
|
|
|
before_script:
|
|
- export PATH=$HOME/.local/bin:$HOME/.cargo/bin:$PATH
|
|
- |
|
|
if [ "$FEATURES" = "cargo-fmt" ]; then
|
|
cargo install rustfmt-nightly --force;
|
|
fi
|
|
- |
|
|
if [ "$FEATURES" = "cargo-clippy" ]; then
|
|
cargo install clippy --force;
|
|
fi
|
|
- mkdir $(pwd)/socket
|
|
- export XDG_RUNTIME_DIR="$(pwd)/socket"
|
|
|
|
script:
|
|
- |
|
|
case $FEATURES in
|
|
"all")
|
|
cargo test --all-features &&
|
|
cargo doc --no-deps --all-features
|
|
;;
|
|
"default")
|
|
cargo test &&
|
|
cargo doc --no-deps
|
|
;;
|
|
"cargo-fmt")
|
|
cargo fmt -- --write-mode=diff
|
|
;;
|
|
"cargo-clippy")
|
|
cargo clippy --all-features -- -D warnings
|
|
;;
|
|
*)
|
|
cargo test --lib --doc --tests --no-default-features --features "$FEATURES" &&
|
|
cargo doc --no-deps --no-default-features --features "$FEATURES"
|
|
esac
|
|
|
|
after_success:
|
|
- cp ./doc_index.html ./target/doc/index.html
|
|
|
|
deploy:
|
|
provider: pages
|
|
skip_cleanup: true
|
|
github_token: $GITHUB_TOKEN
|
|
local_dir: "${TRAVIS_BUILD_DIR}/target/doc"
|
|
on:
|
|
branch: master
|
|
rust: stable
|
|
condition: "$FEATURES = all"
|
|
|
|
notifications:
|
|
webhooks:
|
|
urls:
|
|
- "https://scalar.vector.im/api/neb/services/hooks/dHJhdmlzLWNpLyU0MGxldmFucyUzQXNhZmFyYWRlZy5uZXQvJTIxRkt4aGprSUNwakJWelZlQ2RGJTNBc2FmYXJhZGVnLm5ldA"
|
|
on_success: change
|
|
on_failure: always
|
|
on_start: never
|