language: rust rust: nightly services: docker matrix: include: # Linux - name: "aarch64-unknown-linux-gnu" env: TARGET=aarch64-unknown-linux-gnu NO_JEMALLOC_TESTS=1 - name: "arm-unknown-linux-gnueabi" env: TARGET=arm-unknown-linux-gnueabi NO_JEMALLOC_TESTS=1 - name: "armv7-unknown-linux-gnueabihf" env: TARGET=armv7-unknown-linux-gnueabihf NO_JEMALLOC_TESTS=1 - name: "i586-unknown-linux-gnu" env: TARGET=i586-unknown-linux-gnu addons: &gcc_multilib apt: packages: - gcc-multilib - name: "i686-unknown-linux-gnu (nightly)" env: TARGET=i686-unknown-linux-gnu addons: *gcc_multilib - name: "i686-unknown-linux-gnu (beta)" env: TARGET=i686-unknown-linux-gnu addons: *gcc_multilib rust: beta - name: "i686-unknown-linux-gnu (stable)" env: TARGET=i686-unknown-linux-gnu addons: *gcc_multilib rust: stable - name: "i686-unknown-linux-musl" env: TARGET=i686-unknown-linux-musl NOBGT=1 NO_JEMALLOC_TESTS=1 - name: "mips-unknown-linux-gnu" env: TARGET=mips-unknown-linux-gnu NO_JEMALLOC_TESTS=1 - name: "mips64-unknown-linux-gnuabi64" env: TARGET=mips64-unknown-linux-gnuabi64 NO_JEMALLOC_TESTS=1 - name: "mips64el-unknown-linux-gnuabi64" env: TARGET=mips64el-unknown-linux-gnuabi64 NO_JEMALLOC_TESTS=1 - name: "mipsel-unknown-linux-gnu" env: TARGET=mipsel-unknown-linux-gnu NO_JEMALLOC_TESTS=1 - name: "powerpc-unknown-linux-gnu" env: TARGET=powerpc-unknown-linux-gnu NO_JEMALLOC_TESTS=1 - name: "powerpc64-unknown-linux-gnu" env: TARGET=powerpc64-unknown-linux-gnu NO_JEMALLOC_TESTS=1 - name: "powerpc64le-unknown-linux-gnu" env: TARGET=powerpc64le-unknown-linux-gnu NO_JEMALLOC_TESTS=1 - name: "x86_64-unknown-linux-gnu (nightly)" env: TARGET=x86_64-unknown-linux-gnu VALGRIND=1 JEMALLOC_SYS_VERIFY_CONFIGURE=1 install: rustup component add llvm-tools-preview addons: &valgrind apt: packages: - valgrind - autoconf - name: "x86_64-unknown-linux-gnu (beta)" env: TARGET=x86_64-unknown-linux-gnu VALGRIND=1 rust: beta install: rustup component add llvm-tools-preview addons: *valgrind - name: "x86_64-unknown-linux-gnu (stable)" env: TARGET=x86_64-unknown-linux-gnu VALGRIND=1 rust: stable install: rustup component add llvm-tools-preview addons: *valgrind - name: "Benchmarks using x86_64-unknown-linux-gnu (nightly)" env: TARGET=x86_64-unknown-linux-gnu install: true script: - cargo test --bench roundtrip - cargo test --features=alloc_trait --bench roundtrip - name: "x86_64-unknown-linux-musl" env: TARGET=x86_64-unknown-linux-musl NOBGT=1 NO_JEMALLOC_TESTS=1 # Android - name: "aarch64-linux-android" env: TARGET=aarch64-linux-android NO_JEMALLOC_TESTS=1 - name: "x86_64-linux-android" env: TARGET=x86_64-linux-android # OSX # FIXME: cannot jemalloc tests fail due to: # https://github.com/jemalloc/jemalloc/issues/1320 # https://github.com/alexcrichton/jemallocator/issues/85 - name: "i686-apple-darwin (nightly)" env: TARGET=i686-apple-darwin NO_JEMALLOC_TESTS=1 os: osx osx_image: xcode10 - name: "i686-apple-darwin (beta)" env: TARGET=i686-apple-darwin NO_JEMALLOC_TESTS=1 os: osx osx_image: xcode10 rust: beta - name: "i686-apple-darwin (stable)" env: TARGET=i686-apple-darwin NO_JEMALLOC_TESTS=1 os: osx osx_image: xcode10 rust: stable # FIXME: valgrind fails on OSX # https://github.com/alexcrichton/jemallocator/issues/86 - name: "x86_64-apple-darwin (nightly)" env: TARGET=x86_64-apple-darwin NO_JEMALLOC_TESTS=1 JEMALLOC_SYS_VERIFY_CONFIGURE=1 os: osx osx_image: xcode10 install: rustup component add llvm-tools-preview - name: "x86_64-apple-darwin (beta)" env: TARGET=x86_64-apple-darwin NO_JEMALLOC_TESTS=1 os: osx osx_image: xcode10 rust: beta install: rustup component add llvm-tools-preview - name: "x86_64-apple-darwin (stable)" env: TARGET=x86_64-apple-darwin NO_JEMALLOC_TESTS=1 os: osx osx_image: xcode10 rust: stable install: rustup component add llvm-tools-preview # TOOLING - name: "Documentation" install: true script: RUSTDOCFLAGS="--cfg jemallocator_docs" cargo doc deploy: provider: script script: curl -LsSf https://git.io/fhJ8n | rustc - && (cd target/doc && ../../rust_out) skip_cleanup: true on: branch: master - name: "rustfmt" install: true rust: nightly before_script: rustup component add rustfmt-preview script: cargo fmt --all -- --check - name: "clippy" install: true rust: nightly script: | if rustup component add clippy-preview; then cargo clippy -p jemalloc-sys -- -D clippy::pedantic cargo clippy -p jemallocator -- -D clippy::pedantic fi - name: "Shellcheck" install: true script: shellcheck ci/*.sh install: rustup target add ${TARGET} script: sh ci/run.sh notifications: email: on_success: never