language: rust matrix: include: # Linux 32bit - env: TARGET=i686-unknown-linux-gnu os: linux rust: nightly addons: apt: # Cross compiler and cross compiled C libraries packages: &i686_packages - gcc-multilib - env: TARGET=i686-unknown-linux-gnu os: linux rust: stable addons: apt: packages: *i686_packages # Linux 64bit - env: TARGET=x86_64-unknown-linux-gnu os: linux rust: nightly - env: TARGET=x86_64-unknown-linux-gnu os: linux rust: stable # macOS - env: TARGET=x86_64-apple-darwin os: osx rust: nightly - env: TARGET=x86_64-apple-darwin os: osx rust: stable # iOS - env: TARGET=x86_64-apple-ios os: osx rust: nightly - env: TARGET=x86_64-apple-ios os: osx rust: stable install: - rustup self update - rustup target add $TARGET; true - rustup component add rustfmt script: - cargo fmt --all -- --check - cargo build --target $TARGET --verbose - cargo build --target $TARGET --features serde --verbose # Running iOS apps on OSX requires the simulator so we skip that for now - if [ "$TARGET" != "x86_64-apple-ios" ]; then cargo test --target $TARGET --verbose; fi - if [ "$TARGET" != "x86_64-apple-ios" ]; then cargo test --target $TARGET --features serde --verbose; fi after_success: - | [ $TRAVIS_BRANCH = master ] && [ $TRAVIS_PULL_REQUEST = false ] && cargo publish --token ${CRATESIO_TOKEN}