| 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 |