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 x86_64 - env: TARGET=x86_64-apple-ios os: osx rust: nightly - env: TARGET=x86_64-apple-ios os: osx rust: stable # iOS armv7 - env: TARGET=armv7-apple-ios os: osx rust: nightly - env: TARGET=armv7-apple-ios os: osx rust: stable # iOS arm64 - env: TARGET=aarch64-apple-ios os: osx rust: nightly - env: TARGET=aarch64-apple-ios os: osx rust: stable install: - rustup self update - rustup target add $TARGET; true - rustup toolchain install stable - rustup component add rustfmt --toolchain stable script: - cargo +stable fmt --all -- --check - cargo build --target $TARGET --verbose - cargo build --target $TARGET --features serde --verbose # Running iOS apps on macOS requires the Simulator so we skip that for now - if [[ $TARGET != *-apple-ios ]]; then cargo test --target $TARGET --verbose; fi - if [[ $TARGET != *-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}