language: rust
addons:
apt:
packages:
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
- binutils-dev
- cmake
- gcc
rust:
- nightly
# - beta
- stable
os:
- linux
- osx
matrix:
allow_failures:
# - rust: beta
- rust: nightly
fast_finish: true
exclude:
- rust: nightly
os: osx
before_install:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get update; fi
cache: cargo
before_script: |
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
pip install 'travis-cargo' --user &&
export PATH=$HOME/.local/bin:$PATH;
fi
script: |
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
travis-cargo build &&
travis-cargo test &&
travis-cargo --only stable doc
else
cargo build &&
cargo test
fi
after_success:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then travis-cargo --only stable doc-upload;
fi
- |
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz &&
tar xzf master.tar.gz &&
cd kcov-master &&
mkdir build &&
cd build &&
cmake .. &&
make &&
sudo make install &&
cd ../.. &&
rm -rf kcov-master &&
for file in target/debug/an_rope-*; do
mkdir -p "target/cov/$(basename $file)";
kcov --exclude-pattern=/.cargo,/usr/lib --verify "target/cov/$(basename $file)" "$file";
done &&
bash <(curl -s https://codecov.io/bash) &&
echo "Uploaded code coverage"
fi
notifications:
slack:
rooms:
- stemtumblr:5NYecEWWIW4z3LxVE98V6BZk
on_failure: always
on_success: change
env:
global:
- secure: A/6kIeMgFnhbm1XKbh8LlaEr4hbIPMeSCHkDv3L1vewkqHptGHrsYEXVxeNtUmknG4tXCzlYs1WKVAiJaoGx8PWw9pkBzmF1rv59bZDwyO6p75g/bEWn4e9PIa/5KD2DFR/Urlr+gqj8oNOM9ixPvo1t6IyijpTrK7Gn/cdnUkQOmAOFv7xXRNuHvCaPPdkDVvMyn4xL7hyH4GfHW7l/hlLkJ5H+wFISLKLzgCoFTH4Rmzhx/fz7GYIjW7z7kP8RTcbWEj9pG9srL/79SGBc3BL6wPJj+3uoSTLHKlSSMfEZgFGe2JE3sA9p8yVNUyiOwlSQ6mwNqm081jJ7KkJUFhohjityXCxU1Mim1ZwHqxRwKeEYI9gsOzUF7s5ton35rjguz4on6mcqVguK5Jia4MxQMI1513GN2JbHMfDNB41yVxYq7odztFQ4czRLhzBlEiIbU5En8FVff4lZTLkJLDbwgxhpXYC3jC3dX9U/39hWwBXcH6cEwvL7V8FGHmt0O8N7bRxCYcMbHRxyqGTSrRUI/WbsjYYYeWawsYDfziQqnhCgL/SUThyNZnDBvrPAVk3iaCgCgjB0eWxh2F4axADf+B1vmRpD+AqHnyvDe818DBjuKmS5OZUyA0rUXhrBRpkB7JFzR+dUbfSJKu7uSNNjQa42th7Z/oyyQGk1r0U=
- secure: IbE0k22bDuVaGUjrj6rmErEoiHVf0DDkswgvI8X1hk42O/vJLzxOnk9LleZLbN3wXrqO1wDxaaCAget+VM0ZPPYfuO/5aSDPah/OgmVgcnUDX3nvI1C8A2FEvMo8MngDeJspFYO9CtZLoHmPLMJUkcV6xnvxDy9/z4zjhlM/nbpXf03P2NkhePguQpWUnK2RQnYKfZQ1jsBz9HTyYQMNHih39RBDLwn1dPVf7bnyjAmqvzsQxB5hW1EZlAnfk3OGn8sii1r3GJYQZlfWgB3xxqliDzCiOAz9P8Us4995SRLD6hdbOnX9nxdmq2zUKMCbgixXTgngZNtHEPs814om2Cm3ua0KTwlTi+beKTYgD7VsA5ZCNBQyqLaSpvTd2m41HekKNoF1FYFtO4eI1lXkM2YCu99IvcI8W6YpgUKI05sJMEJafha12q31/LL1z7g0V50uWNsGSsCXho+zco9RzIsGwvW+S2h4+5lY5kLE93Td5edXP8LpBH4X20lLueKRc4zLcQW83wq2XXYKzz1iDAOpX/bDB9z7+FP+bkX9kfD6EUcvHe4Cc9cKRT33EwL4DPyUtIoMaCHp5HT+MJWHQ4kb3ZwuE5NYDWIUpiOZvm6m5joWgtg4iSHG/NuOeRireOBYSatpbDrADgmqjWkMRI4o7XAAlVKYvqEtoOc2PQg=
before_deploy: |
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
cargo build --release &&
cargo package --allow-dirty &&
cargo publish --allow-dirty --token $CRATES_TOKEN
fi
deploy:
provider: releases
api_key:
secure: qAH9PD6nXhzS1UPgd04KEb/MKsCq3yMApRwZrlcdJzC8z6OK4ISKDb+hbRHID53ORe+WMFEoUgp0t0Eoo8ZGuUgNSqxey6FuCdIU5QXYODCNgnK1MeO0/Ws12LH5B9kBkbpeFhBfeo+4vHP2tqfmyf3xgXw5UxjvLbT6z7/r1PejnsorP2e6bMhdeI4cOH4rehLc67WF87zOXFoMPdBdwhjJrhZukRcu1WSanrD4evNjXHV5jKmrUMSqpVTc8ZK2XpRZQAoW0mZsMaUXtvEIdaeTMI/8U+NjtLwtwm3zob/DIj8b+K3O+PE6JJcovEDMB7l6XAtkzRfsk1lVd/YOhQTzzRUBqoz2I8tw60thUvSiLEOILxvmwEoPNMx2K5W5lzMKRppYia+c3q/WmNzmxI5H0cFXkh2vCGM1BfACjuydTkKWxBjanHm4NtKEpQLKolUX6D2FOpDlhb1heF6xYVrmPFQIJIGQUUedxyI7N3gci3SzW5rQfwyrkWoOokFa9c8eNxGNlSxaUDJdnjkY55lJFPUhUWTreXYNDPO3BzZDIpPErB/TJrdy4rirH2iwLHvJQpdTKCd/5XzcHFCkXFS9tAd7wR4CftqM7FSgB4cJE/K2C/226ysG4LqtzMpTJJALEfC7PKYa/90jCL8gkDoUl4oQLpKa8e3ysEoGBbs=
file-glob: true
file: "target/release/an_rope-*"
skip_cleanup: true
on:
tags: true
repo: an-cabal/an-rope
rust: stable
after_deploy: