1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- sudo: false
- language: rust
- rust:
- - beta
- - nightly
- - stable
- cache: cargo
- matrix:
- allow_failures:
- - rust: nightly
- before_install:
- - |
- c=$(git diff $(git merge-base master $TRAVIS_COMMIT)..$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:
- - |
- travis_cargo_run_in() {
- echo ":: Trying to run cargo in $1"
- [[ -d "$1" ]] &&
- cd "$1" &&
- {
- travis-cargo build &&
- travis-cargo test &&
- travis-cargo bench &&
- travis-cargo --only stable doc &&
- cd -
- } || exit 1
- }
- run_sh_test() {
- echo "--- Running test script: '$1'"
- bash $1 || { echo "--- Test failed. Exiting"; exit 1; }
- echo "--- Test script $1 executed successfully"
- }
- echo "<< Changes in ./doc are not build by CI >>"
- for d in $(find -name "Cargo.toml" | grep -vE "^./Cargo.toml$"); do
- echo ":: Working on $d"
- dir=$(dirname $d)
- { \
- echo -e "\n--- Running in $d ---\n" && \
- travis_cargo_run_in $dir && \
- tree -I "*doc*" $dir && \
- echo "--- Running test scripts ---" && \
- for testsh in $(find $dir -iname "*test.sh"); do
- run_sh_test $testsh
- done && \
- echo -e "--- Done with test scripts ---\n\n"
- } || true
- done
- addons:
- apt:
- packages:
- - libcurl4-openssl-dev
- - libelf-dev
- - libdw-dev
- - tree
- after_success:
- - travis-cargo --only stable doc-upload
- notifications:
- email:
- on_success: never
- env:
- global:
- - TRAVIS_CARGO_NIGHTLY_FEATURE=dev
|