2018-04-30 23:15:07 +02:00
language : rust
rust :
2018-11-01 22:23:38 +01:00
- nightly-2018-07-17
2018-11-04 20:27:27 +01:00
cache :
cargo : true
directories :
- kcov-master
2018-11-01 22:23:38 +01:00
sudo : true
dist : trusty
addons :
apt :
packages :
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
- cmake
- gcc
- binutils-dev
- zlib1g-dev
- libiberty-dev
2018-11-04 20:27:27 +01:00
stages :
- build
- code coverage
2018-11-01 22:23:38 +01:00
jobs :
include :
2018-11-04 20:27:27 +01:00
- stage : build
name : "Build with postgresql"
2018-11-01 22:23:38 +01:00
env :
- MIGRATION_DIR=migrations/postgres FEATURES=postgres DATABASE_URL=postgres://postgres@localhost/plume
script : cargo build --no-default-features --features="${FEATURES}"
2018-11-04 20:27:27 +01:00
- stage : build
name : "Build with sqlite"
2018-11-01 22:23:38 +01:00
env :
- MIGRATION_DIR=migrations/sqlite FEATURES=sqlite DATABASE_URL=plume.sqlite3
script : cargo build --no-default-features --features="${FEATURES}"
2018-11-04 20:27:27 +01:00
- stage : code coverage
name : "Calculate code coverage"
env :
- RUSTFLAGS='-C link-dead-code'
script :
- |
cargo test --features sqlite --no-default-features --all && (
wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz &&
tar xzf master.tar.gz &&
mkdir -p kcov-master/build &&
cd kcov-master/build &&
cmake .. &&
make &&
sudo make install &&
cd ../.. &&
for crate in plume plume_common plume_models plume_api plm lib; do for file in target/debug/$crate-*[^\.d]; do mkdir -p "target/cov/$(basename $file)"; kcov --exclude-pattern=/.cargo,/usr/lib --verify "target/cov/$(basename $file)" "$file"; done; done &&
bash <(curl -s https://codecov.io/bash) &&
echo "Uploaded code coverage" || true )