language: rust rust: nightly services: docker jobs: include: # Linux - name: "aarch64-unknown-linux-gnu" env: TARGET=aarch64-unknown-linux-gnu NO_JEMALLOC_TESTS=1 arch: arm64 - name: "powerpc64le-unknown-linux-gnu" env: TARGET=powerpc64le-unknown-linux-gnu NO_JEMALLOC_TESTS=1 arch: ppc64le - name: "x86_64-unknown-linux-gnu (nightly)" env: TARGET=x86_64-unknown-linux-gnu VALGRIND=1 install: rustup component add llvm-tools-preview addons: &valgrind apt: packages: - 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 # FIXME: Re-enable this when allocator API is stable. # - 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 install: rustup target add x86_64-unknown-linux-musl addons: apt: packages: musl-tools # OSX # FIXME: cannot jemalloc tests fail due to: # https://github.com/jemalloc/jemalloc/issues/1320 # https://github.com/gnzlbg/jemallocator/issues/85 # FIXME: valgrind fails on OSX # https://github.com/gnzlbg/jemallocator/issues/86 - name: "x86_64-apple-darwin (nightly)" env: TARGET=x86_64-apple-darwin NO_JEMALLOC_TESTS=1 os: osx osx_image: xcode10 install: rustup component add llvm-tools-preview 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 - name: "rustfmt" install: true rust: nightly script: | if rustup component add rustfmt-preview ; then cargo fmt --all -- --check fi - name: "clippy" install: true rust: nightly # allow(clippy::all) fails in the syscrate, so we can't use --all here: script: | if rustup component add clippy-preview ; then cargo clippy -p tikv-jemalloc-sys -- -D clippy::all cargo clippy -p tikv-jemallocator -- -D clippy::all cargo clippy -p tikv-jemallocator-global -- -D clippy::all cargo clippy -p tikv-jemalloc-ctl -- -D clippy::all fi - name: "Shellcheck" install: true script: shellcheck ci/*.sh install: rustup target add ${TARGET} script: sh ci/run.sh notifications: email: on_success: never