language: rust
rust:
- stable
- beta
- nightly
sudo: true
os:
- linux
matrix:
allow_failures:
- rust: nightly
addons:
apt:
packages:
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
- binutils-dev
- libiberty-dev
- cmake
before_script:
- |
if [ "${TRAVIS_OS_NAME}" = 'osx' ]; then
export PATH=$HOME/Library/Python/2.7/bin:$PATH
fi
- |
if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
pippackage=("ghp-import" "pytoml")
comm -13 <(pip freeze | cut -d= -f1 | sort) <(for i in ${pippackage[*]};do echo $i;done | sort) | grep -v '^#' | xargs pip install --user
export CARGO_PACKAGE_NAME=$(echo 'import pytoml as toml; print(toml.load(open("Cargo.toml", "rb"))["package"]["name"])' | python2)
echo CARGO_PACKAGE_NAME=$CARGO_PACKAGE_NAME
fi
- |
if [ "$TRAVIS_RUST_VERSION" = "nightly" ]; then
export FEATURES="complex rational ndarray"
else
export FEATURES="complex rational ndarray"
fi
- cargo install cargo-update || echo "cargo-update already installed"
- cargo install cargo-travis || echo "cargo-travis already installed"
- cargo install-update -a || true
script:
- cargo build --features="$FEATURES"
- cargo test --no-run --features="$FEATURES"
- cargo build --release --features="$FEATURES"
- cargo test --release --no-run --features="$FEATURES"
- |
if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
cargo coveralls --features="$FEATURES" ||
cargo test --features="$FEATURES"
else
cargo test --features="$FEATURES"
fi
- cargo test --release --features="$FEATURES"
- |
if [ "$TRAVIS_RUST_VERSION" = "nightly" ]; then
cargo bench --verbose --features="$FEATURES"
fi
- |
if [ "${TRAVIS_OS_NAME}" = "linux" ] &&
[ "${TRAVIS_RUST_VERSION}" = "nightly" ]; then
cargo doc --no-deps --features="docs" &&
echo "<meta http-equiv=refresh content=0;url=`echo $CARGO_PACKAGE_NAME`/index.html>" > target/doc/index.html &&
ghp-import -n target/doc
fi
- |
if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
cargo login ${CRATES_TOKEN} &&
cargo package
fi
after_success:
- |
if [ "${TRAVIS_OS_NAME}" = "linux" ] &&
[ "${TRAVIS_RUST_VERSION}" = "nightly" ] &&
[ "${TRAVIS_BRANCH}" = "master" ] &&
[ "${TRAVIS_PULL_REQUEST}" = "false" ] &&
[ "${RUSTFLAGS}"="-C debug-assertions=off" ] &&
[ "${TRAVIS_EVENT_TYPE}" = "push" ]; then
git push -fq https://${GH_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git gh-pages &&
cargo publish
fi
env:
matrix:
- RUSTFLAGS="-C debug-assertions=on"
- RUSTFLAGS="-C debug-assertions=off"
global:
secure: K76k+cWN808HPtLvgnUKQmOBlfjzzQJ0KZAJzffkn1JO2zBpmJwMiIZZKGbLk1N+lP4eGUSx0DBwytyo6owG/6KPtIHWp3WA1p6vpTMRAELwMLH+/AKFPBp43c+Rm3mMI3HKsN6IB2yOfsWwxEdBROLnRO+sT38BnHIuXBSW/UTNqg4lml3OAhui+oa1lR0BIcL1dkEuDjZdDSzWzrQAULgR3C4maaFVQoaVhZNpSlE8D1lHompghxvjFk5vzewERUJMbLe5uozkxdQNwcJMMB775l6p7kAvHIy/mEoDrOqOeSPMdr8bnr/DDS/asU992R5AONd6Ml4h83WJZGLk2NRF9E16LzE939i7imrrg8Zprs7J1S9NzfQIXH83YsJIQ2A+9fAvLwKDvfm0epgw5MZhNP538inrmUT0IXG5aqqlI5ISHzqLRUNmOO/VaxkpKQer0GuOBvReheh+h/6XizzGGsI6yLHiimQ8SQV0o10jBXi+Flo9hwxY3ZhbbNRSTaHGjawx/vkNraBlHCX6otRr2ewTodlsl46uM0J97j/eg2S4UUSiMHyyl4JhJQ5iJxNmZEsdLCzStrdFtGfAc4oA77NJVLjMRHSUxybokKeUBVbXuQ3MpNrdmjlKvg0o2oMFsYLI2AXoVfWxq8JVdDHtads1Lh302HsDDms0eTY=
cache:
cargo: true
apt: true
pip: true
notifications:
email:
on_success: never
on_failure: always