+sudo: false
language: rust
-rust:
- - stable
- - beta
- - nightly
+rust: nightly
+os: linux
+cache:
+ directories:
+ - $HOME/.cargo
-sudo: false
+addons:
+ apt:
+ packages:
+ - libcurl4-openssl-dev
+ - libelf-dev
+ - libdw-dev
+
+matrix:
+ include:
+ - env: DEPLOY=LINUX
+ - env: CFG_RELEASE_CHANNEL=beta
+ - os: osx
+ - env: INTEGRATION=bitflags
+ - env: INTEGRATION=cargo
+ - env: INTEGRATION=chalk
+ - env: INTEGRATION=crater
+ - env: INTEGRATION=error-chain
+ - env: INTEGRATION=failure
+ - env: INTEGRATION=futures-rs
+ - env: INTEGRATION=glob
+ - env: INTEGRATION=log
+ - env: INTEGRATION=mdbook
+ - env: INTEGRATION=packed_simd
+ - env: INTEGRATION=rand
+ - env: INTEGRATION=rust-clippy
+ - env: INTEGRATION=rust-semverver
+ - env: INTEGRATION=stdsimd
+ - env: INTEGRATION=tempdir
+ allow_failures:
+ # Needs `edition = "2018"` in rustfmt.toml
+ - env: INTEGRATION=chalk
+ # Fails tests, don't know why
+ - env: INTEGRATION=crater
+ # Doesn't build
+ - env: INTEGRATION=futures-rs
+ # Doesn't build - seems to be because of an option
+ - env: INTEGRATION=packed_simd
+ # Weird bug I can't reproduce: #2969
+ - env: INTEGRATION=rand
+ # Test failure
+ - env: INTEGRATION=rust-clippy
+ # Build failure
+ - env: INTEGRATION=rust-semverver
script:
- - cargo build
- - cargo test
+ - |
+ if [ -z ${INTEGRATION} ]; then
+ cargo build
+ cargo test
+ else
+ ./ci/integration.sh
+ fi
+
+after_success:
+- if [ -z ${INTEGRATION} ]; then travis-cargo coveralls --no-sudo; fi
+
+before_deploy:
+ # TODO: cross build
+ - cargo build --release --target=x86_64-unknown-linux-gnu
+ - tar czf rustfmt-x86_64-unknown-linux-gnu.tar.gz Contributing.md Design.md README.md -C target/x86_64-unknown-linux-gnu/release/rustfmt rustfmt
+
+deploy:
+ provider: releases
+ api_key:
+ secure: "your own encrypted key"
+ file:
+ - rustfmt-x86_64-unknown-linux-gnu.tar.gz
+ on:
+ repo: nrc/rustfmt
+ tags: true
+ condition: "$DEPLOY = LINUX"
+ skip_cleanup: true