75 lines
1.7 KiB
YAML
75 lines
1.7 KiB
YAML
sudo: false
|
|
language: rust
|
|
rust:
|
|
- beta
|
|
- nightly
|
|
- stable
|
|
|
|
matrix:
|
|
allow_failures:
|
|
- rust: nightly
|
|
|
|
before_install:
|
|
- |
|
|
c=$(git diff $TRAVIS_BRANCH..$TRAVIS_COMMIT --name-only | cut -d "/" -f 1 | uniq)
|
|
if [[ "$c" == "doc" ]]; then
|
|
echo "Only changes in DOC, exiting 0"
|
|
exit 0
|
|
else
|
|
echo "Changes in other directories than ./doc"
|
|
echo "continue build..."
|
|
fi
|
|
|
|
before_script:
|
|
- |
|
|
pip install 'travis-cargo<0.2' --user &&
|
|
export PATH=$HOME/.local/bin:$PATH
|
|
|
|
script:
|
|
- |
|
|
changes_in() {
|
|
[[ $(git diff --name-only $TRAVIS_BRANCH..$TRAVIS_COMMIT | \
|
|
cut -d "/" -f 1 | \
|
|
grep "$n") ]] > /dev/null
|
|
}
|
|
|
|
travis_cargo_run_in() {
|
|
[[ -d "$1" ]] &&
|
|
cd "$1" &&
|
|
travis-cargo build &&
|
|
travis-cargo test &&
|
|
travis-cargo bench &&
|
|
travis-cargo --only stable doc &&
|
|
cd -
|
|
}
|
|
|
|
[[ $(changes_in "doc") ]] && echo "Changes in ./doc are not build by CI"
|
|
|
|
for d in $(find -name "Cargo.toml" | grep -vE "^.$"); do
|
|
dir=$(dirname $d)
|
|
changes_in $dir && \
|
|
echo -e "\nRunning in $d\n" && \
|
|
travis_cargo_run_in $dir
|
|
done
|
|
|
|
echo -e "\nRunning on top-level crate...\n"
|
|
travis_cargo_run_in "."
|
|
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- libcurl4-openssl-dev
|
|
- libelf-dev
|
|
- libdw-dev
|
|
|
|
after_success:
|
|
- travis-cargo --only stable doc-upload
|
|
- travis-cargo coveralls --no-sudo
|
|
|
|
notifications:
|
|
email:
|
|
on_success: never
|
|
|
|
env:
|
|
global:
|
|
- TRAVIS_CARGO_NIGHTLY_FEATURE=dev
|