blob: ea37022372f10aaf47e23606181eea96717b3ff2 [file] [log] [blame]
language: rust
dist: xenial
rust:
- stable
- beta
- nightly
cache:
directories:
- $HOME/.cargo
- $HOME/.rustup
before_cache:
- rm -rf /home/travis/.cargo/registry
addons:
postgresql: '9.5'
services:
- mysql
before_install:
# install sqlite3 version 3.24.0
- |
if [[ "$BACKEND" == sqlite ]]; then
(sudo apt-get update) &&
(wget --quiet -c https://sqlite.org/2020/sqlite-autoconf-3310100.tar.gz) &&
(tar zxf sqlite-autoconf-3310100.tar.gz;) &&
(cd sqlite-autoconf-3310100; \
CFLAGS="$CFLAGS -O2 -fno-strict-aliasing \
-DSQLITE_DEFAULT_FOREIGN_KEYS=1 \
-DSQLITE_SECURE_DELETE \
-DSQLITE_ENABLE_COLUMN_METADATA \
-DSQLITE_ENABLE_FTS3_PARENTHESIS \
-DSQLITE_ENABLE_RTREE=1 \
-DSQLITE_SOUNDEX=1 \
-DSQLITE_ENABLE_UNLOCK_NOTIFY \
-DSQLITE_OMIT_LOOKASIDE=1 \
-DSQLITE_ENABLE_DBSTAT_VTAB \
-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1 \
-DSQLITE_ENABLE_LOAD_EXTENSION \
-DSQLITE_ENABLE_JSON1 \
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
-DSQLITE_THREADSAFE=1 \
-DSQLITE_ENABLE_FTS3_TOKENIZER=1 \
-DSQLITE_MAX_SCHEMA_RETRY=25 \
-DSQLITE_ENABLE_PREUPDATE_HOOK \
-DSQLITE_ENABLE_SESSION \
-DSQLITE_ENABLE_STMTVTAB \
-DSQLITE_MAX_VARIABLE_NUMBER=250000" \
./configure --prefix=/usr \
--enable-threadsafe \
--enable-dynamic-extensions \
--libdir=/usr/lib/x86_64-linux-gnu \
--libexecdir=/usr/lib/x86_64-linux-gnu/sqlite3) &&
(cd sqlite-autoconf-3310100; sudo make; sudo make install)
fi
before_script:
- pip install 'travis-cargo<0.2' --user
- export PATH=$HOME/.local/bin:$PATH
- mysql -e "create database diesel_test; create database diesel_unit_test; grant all on \`diesel_%\`.* to 'travis'@'%';" -uroot
- rm rust-toolchain
script:
- |
rustc --version &&
if [[ "$TRAVIS_RUST_VERSION" == nightly* ]]; then
(cd diesel && cargo test --no-default-features --features "unstable extras $BACKEND")
else
(cd diesel && cargo test --no-default-features --features "extras $BACKEND")
fi &&
(cd diesel && cargo test --no-default-features --features "extras with-deprecated $BACKEND") &&
(cd diesel_derives && cargo test --features "diesel/$BACKEND") &&
if [[ "$TRAVIS_RUST_VERSION" == nightly* ]]; then
(cd diesel_derives && cargo test --features "diesel/unstable diesel/$BACKEND")
fi &&
(cd "examples/$BACKEND" && ./test_all) &&
(cd diesel_cli && cargo test --no-default-features --features "$BACKEND") &&
(cd diesel_migrations/migrations_internals && cargo test ) &&
(cd diesel_migrations/migrations_macros && cargo test ) &&
(cd diesel_migrations/ && cargo test --features "$BACKEND diesel/$BACKEND" ) &&
if [[ "$TRAVIS_RUST_VERSION" == nightly* ]]; then
(cd diesel_tests && cargo test --no-default-features --features "unstable $BACKEND")
else
(cd diesel_tests && cargo test --no-default-features --features "$BACKEND")
fi
matrix:
allow_failures:
- rust: nightly
include:
- rust: nightly-2020-05-01
name: "Compile tests"
env: RUSTFLAGS="--cap-lints=warn"
script:
- (cd diesel_compile_tests && cargo test)
- rust: 1.40.0
name: "Rustfmt && Clippy"
script:
- rustup component add rustfmt clippy
- cargo clippy
- cargo fmt --all -- --check
- rust: stable
name: "Bundled Sqlite"
env:
- SQLITE_DATABASE_URL=/tmp/test.db
script:
- (cd diesel_cli && cargo test --no-default-features --features "sqlite-bundled")
- rust: 1.40.0
name: "Minimal supported rust version == 1.40.0"
script:
- cargo check --all
env:
matrix:
- BACKEND=sqlite
SQLITE_DATABASE_URL=/tmp/test.db
- BACKEND=postgres
PG_DATABASE_URL=postgres://postgres@localhost/
PG_EXAMPLE_DATABASE_URL=postgres://postgres@localhost/diesel_example
- BACKEND=mysql
MYSQL_DATABASE_URL=mysql://travis@localhost/diesel_test
MYSQL_EXAMPLE_DATABASE_URL=mysql://travis@localhost/diesel_example
MYSQL_UNIT_TEST_DATABASE_URL=mysql://travis@localhost/diesel_unit_test
RUST_TEST_THREADS=1
global:
- TRAVIS_CARGO_NIGHTLY_FEATURE=""
- secure: NmCM1VNEzid6bROA7tXV1R63n9S9KvY1etXsDzd1608cvjRnG3ZDAWXISbY1BxqrvleElreUJOvz/3TSQCHivpT2ezeyk2sntYtZpw0TWbz1SQMAPNWPTjP3bNQzpmNwfU4p6ui6qIOnQza4JxOu3SZSveNlehDBPkkS+52R7Zw/EPdwi9jTYJArV2+8pnEsQECAdRLttbtA2JBl3hZ4VHfGpHRZyeULn63UzyVbQVzQ3NVhqyQUKTPdpUciQTI3fZEkfaWuLV8QPPa5026/yJEEi2Fsl3r7fyY8ia67k4Zo9THlPVD0YOUlkWuZWwvkxNA8RQSVPv4FidEpwbxG8y6nAra4CjwiEChcpFhZJtrH7ZrXO/tJk7vtc5CFVWUsQtNX92QY1QFdPxwYNBSICLyUN+A+BQURwvQgxdcJsJyQmh5Ed7yuavcAinVq7fPeOyBWcPL5mt17no16aG1rzvXSUnD0aH7F3S3DHkoM9P9iHgJMLk+2YNmJtFescBxCeG8bA7t5bw0kQNH5KUWAD1uYpC9ikB3NVdlc+q17dKTAe4rcYA+sIO+UGudvpmLWT0lXtEMqDfxfCmyICDESs9bNfueCGJEAnfTBNunsJqR7rMUvjNndS2/Ssok6c/0Yfb9X8cM9nI4QLAj/+hClqdYphmpCjuC34bWxFSt/KJI=
after_success:
- |
if [[ "$TRAVIS_RUST_VERSION" == stable ]]; then
(cd diesel && cargo doc --features "postgres sqlite mysql extras")
mkdir diesel/target
mv target/doc diesel/target/doc
echo "docs.diesel.rs" > diesel/target/doc/CNAME
(cd diesel && travis-cargo doc-upload)
fi
branches:
only:
- master
- ಠ_ಠ
notifications:
webhooks:
urls:
- https://webhooks.gitter.im/e/1d32e0ad32841bd56b02
on_success: change
on_failure: always
on_start: never