language: rust # We use OSX so that we can get a reasonably up to date version of SQLCipher. # (The version in Travis's default Ubuntu Trusty is much too old). os: osx before_install: - brew install sqlcipher --with-fts env: - MENTAT_RUST_VERSION=1.25.0 # Must align with `build/version.rs`. rust: - 1.25.0 - stable - beta - nightly matrix: allow_failures: - rust: nightly fast_finish: true install: - | if [[ "$TRAVIS_RUST_VERSION" = "$MENTAT_RUST_VERSION" ]]; then rustup target add aarch64-apple-ios armv7-apple-ios armv7s-apple-ios x86_64-apple-ios i386-apple-ios && # The version of cargo-lipo in Crates.io doesn't contain any support for Cargo manifests in subdirectories and the build fail. # We therefore need to use a Beta version that contains the right code. cargo install --git https://github.com/TimNN/cargo-lipo --rev d347567ff337ee169ba46a624229a451dd6f6067 && # If we don't list the devices available then, when we come to pick one during the test run, Travis doesn't # think that there are any devices available and the build fails. # TODO: See if there is a less time consuming way of doing this. instruments -s devices fi script: - cargo test --verbose --all - cargo test --features edn/serde_support --verbose --all # We can't pick individual features out with `cargo test --all` (At the time of this writing, this # works but does the wrong thing because of a bug in cargo, but its fix will be to disallow doing # this all-together, see https://github.com/rust-lang/cargo/issues/5364 for more information). To # work around this, we run individual tests for each subcrate individually. - | for manifest in $(find . -type f -name Cargo.toml); do cargo test --manifest-path $manifest --verbose --no-default-features --features sqlcipher done - | if [[ "$TRAVIS_RUST_VERSION" = "$MENTAT_RUST_VERSION" ]]; then pushd ffi && cargo lipo --release && popd && pushd sdks/swift/Mentat && xcodebuild -configuration Debug -scheme "Mentat Debug" -sdk iphonesimulator test -destination 'platform=iOS Simulator,name=iPhone X,OS=11.4' && popd fi after_success: - | if [[ "$TRAVIS_PULL_REQUEST" = "false" && "$TRAVIS_BRANCH" == "master" ]]; then cargo doc && echo "" > target/doc/index.html && git clone https://github.com/davisp/ghp-import.git && ./ghp-import/ghp_import.py -n -p -f -r https://"$GH_TOKEN"@github.com/"$TRAVIS_REPO_SLUG.git" target/doc fi cache: cargo