Adding iOS Build and Test to CI (#804)
* Add iOS SDK build and test to rust 1.25.0 version of travis CI build * Address review comments * Move iOS testing and document generation into post test jobs
This commit is contained in:
parent
66cc4e14ad
commit
cd99774e2c
3 changed files with 41 additions and 9 deletions
19
.travis.yml
19
.travis.yml
|
@ -5,7 +5,7 @@ os: osx
|
||||||
before_install:
|
before_install:
|
||||||
- brew install sqlcipher --with-fts
|
- brew install sqlcipher --with-fts
|
||||||
rust:
|
rust:
|
||||||
- 1.25.0 # Must align with `build/version.rs`.
|
- 1.25.0
|
||||||
- stable
|
- stable
|
||||||
- beta
|
- beta
|
||||||
- nightly
|
- nightly
|
||||||
|
@ -13,6 +13,15 @@ matrix:
|
||||||
allow_failures:
|
allow_failures:
|
||||||
- rust: nightly
|
- rust: nightly
|
||||||
fast_finish: true
|
fast_finish: true
|
||||||
|
jobs:
|
||||||
|
include:
|
||||||
|
- stage: "Test iOS"
|
||||||
|
rust: 1.25.0
|
||||||
|
script: ./scripts/install-ios.sh
|
||||||
|
script: ./scripts/test-ios.sh
|
||||||
|
- stage: "Docs"
|
||||||
|
rust: 1.25.0
|
||||||
|
script: ./scripts/cargo-doc.sh
|
||||||
script:
|
script:
|
||||||
- cargo test --verbose --all
|
- cargo test --verbose --all
|
||||||
- cargo test --features edn/serde_support --verbose --all
|
- cargo test --features edn/serde_support --verbose --all
|
||||||
|
@ -24,12 +33,4 @@ script:
|
||||||
for crate in "" "db" "db-traits" "ffi" "public-traits" "query-projector" "query-projector-traits" "query-pull" "sql" "tolstoy" "tolstoy-traits" "transaction" "tools/cli"; do
|
for crate in "" "db" "db-traits" "ffi" "public-traits" "query-projector" "query-projector-traits" "query-pull" "sql" "tolstoy" "tolstoy-traits" "transaction" "tools/cli"; do
|
||||||
cargo test --manifest-path ./$crate/Cargo.toml --verbose --no-default-features --features sqlcipher
|
cargo test --manifest-path ./$crate/Cargo.toml --verbose --no-default-features --features sqlcipher
|
||||||
done
|
done
|
||||||
after_success:
|
|
||||||
- |
|
|
||||||
if [[ "$TRAVIS_PULL_REQUEST" = "false" && "$TRAVIS_BRANCH" == "master" ]]; then
|
|
||||||
cargo doc &&
|
|
||||||
echo "<meta http-equiv=refresh content=0;url=mentat/index.html>" > 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
|
cache: cargo
|
||||||
|
|
8
scripts/cargo-doc.sh
Executable file
8
scripts/cargo-doc.sh
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [[ "$TRAVIS_PULL_REQUEST" = "false" && "$TRAVIS_BRANCH" == "master" ]]; then
|
||||||
|
cargo doc &&
|
||||||
|
echo "<meta http-equiv=refresh content=0;url=mentat/index.html>" > 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
|
23
scripts/test-ios.sh
Executable file
23
scripts/test-ios.sh
Executable file
|
@ -0,0 +1,23 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Install iOS targets with Rustup. We need to install all targets as we are building a universal library.
|
||||||
|
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
|
||||||
|
|
||||||
|
# Build Mentat as a universal iOS library.
|
||||||
|
pushd ffi
|
||||||
|
cargo lipo --release
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Run the iOS SDK tests using xcodebuild.
|
||||||
|
pushd sdks/swift/Mentat
|
||||||
|
xcodebuild -configuration Debug -scheme "Mentat Debug" -sdk iphonesimulator test -destination 'platform=iOS Simulator,name=iPhone X,OS=11.4'
|
||||||
|
popd
|
Loading…
Reference in a new issue