language: rust rust: nightly os: linux dist: focal stages: - tools - build-test-verify # Passes full test suite, permit no regressions (unless it's rustup :/) - 32bit-tier1 - 64bit-tier2 - 32bit-tier2 jobs: fast_finish: true include: # Android: - env: TARGET=x86_64-linux-android name: "x86_64-unknown-linux-android + SSE2" stage: build-test-verify - env: TARGET=arm-linux-androideabi name: "arm-linux-androideabi" stage: build-test-verify - env: TARGET=arm-linux-androideabi RUSTFLAGS="-C target-feature=+v7,+neon" name: "arm-linux-androideabi + NEON" stage: build-test-verify - name: "aarch64-unknown-linux-android + NEON" env: TARGET=aarch64-linux-android RUSTFLAGS="-C target-feature=+neon" stage: build-test-verify - env: TARGET="thumbv7neon-linux-androideabi" name: "thumbv7neon-linux-androideabi" stage: 32bit-tier2 # Linux: - env: TARGET=i586-unknown-linux-gnu name: "i586-unknown-linux-gnu" stage: 32bit-tier2 - env: TARGET=i586-unknown-linux-gnu RUSTFLAGS="-C target-feature=+sse" name: "i586-unknown-linux-gnu + SSE" stage: 32bit-tier2 - env: TARGET=i586-unknown-linux-gnu RUSTFLAGS="-C target-feature=+sse2" name: "i586-unknown-linux-gnu + SSE2" stage: 32bit-tier2 - env: TARGET=i686-unknown-linux-gnu name: "i686-unknown-linux-gnu + SSE2" stage: 32bit-tier1 - env: TARGET=i686-unknown-linux-gnu RUSTFLAGS="-C target-feature=+sse4.2" name: "i686-unknown-linux-gnu + SSE4.2" stage: 32bit-tier1 - env: TARGET=i686-unknown-linux-gnu RUSTFLAGS="-C target-feature=+avx2" name: "i686-unknown-linux-gnu + AVX2" stage: 32bit-tier1 - env: TARGET=x86_64-unknown-linux-gnu RUSTFLAGS="-C target-feature=+sse4.2" name: "x86_64-unknown-linux-gnu + SSE4.2" install: rustup component add rustfmt-preview stage: build-test-verify - env: TARGET=x86_64-unknown-linux-gnu RUSTFLAGS="-C target-feature=+avx2" name: "x86_64-unknown-linux-gnu + AVX2" install: rustup component add rustfmt-preview stage: build-test-verify - env: TARGET=arm-unknown-linux-gnueabi RUSTFLAGS="-C target-feature=+v7,+neon" name: "arm-unknown-linux-gnueabi + NEON" stage: build-test-verify - env: TARGET=arm-unknown-linux-gnueabihf name: "arm-unknown-linux-gnueabihf" stage: build-test-verify - env: TARGET=arm-unknown-linux-gnueabihf RUSTFLAGS="-C target-feature=+v7,+neon" name: "arm-unknown-linux-gnueabihf + NEON" stage: build-test-verify - env: TARGET=armv7-unknown-linux-gnueabihf name: "armv7-unknown-linux-gnueabihf" stage: build-test-verify - env: TARGET=armv7-unknown-linux-gnueabihf RUSTFLAGS="-C target-feature=+neon" name: "armv7-unknown-linux-gnueabihf + NEON" stage: build-test-verify - env: TARGET="thumbv7neon-unknown-linux-gnueabihf" name: "thumbv7neon-unknown-linux-gnueabihf" stage: 32bit-tier2 - name: "aarch64-unknown-linux-gnu + NEON" env: TARGET=aarch64-unknown-linux-gnu RUSTFLAGS="-C target-feature=+neon" stage: build-test-verify - env: TARGET=mips-unknown-linux-gnu name: "mips-unknown-linux-gnu" stage: 32bit-tier2 - env: TARGET=mipsel-unknown-linux-musl name: "mipsel-unknown-linux-musl" stage: 32bit-tier2 - env: TARGET=mips64-unknown-linux-gnuabi64 name: "mips64-unknown-linux-gnuabi64" stage: 64bit-tier2 - env: TARGET=mips64el-unknown-linux-gnuabi64 name: "mips64el-unknown-linux-gnuabi64" stage: 64bit-tier2 # FIXME: https://github.com/rust-lang-nursery/packed_simd/issues/18 # env: TARGET=mips64el-unknown-linux-gnuabi64 RUSTFLAGS="-C target-feature=+msa -C target-cpu=mips64r6" - env: TARGET=powerpc-unknown-linux-gnu name: "powerpc-unknown-linux-gnu" stage: 32bit-tier2 - env: TARGET=powerpc64-unknown-linux-gnu name: "powerpc64-unknown-linux-gnu" stage: 64bit-tier2 - name: "powerpc64le-unknown-linux-gnu" env: TARGET=powerpc64le-unknown-linux-gnu stage: build-test-verify - name: "powerpc64le-unknown-linux-gnu + ALTIVEC" env: TARGET=powerpc64le-unknown-linux-gnu RUSTFLAGS="-C target-feature=+altivec" stage: build-test-verify - name: "powerpc64le-unknown-linux-gnu + VSX" env: TARGET=powerpc64le-unknown-linux-gnu RUSTFLAGS="-C target-feature=+vsx" stage: build-test-verify - name: "s390x-unknown-linux-gnu" env: TARGET=s390x-unknown-linux-gnu stage: 64bit-tier2 - env: TARGET=sparc64-unknown-linux-gnu name: "sparc64-unknown-linux-gnu" stage: 64bit-tier2 # WebAssembly: - env: TARGET=wasm32-unknown-unknown name: "wasm32-unknown-unknown" stage: 32bit-tier2 # MacOSX: - os: osx env: TARGET=x86_64-apple-darwin RUSTFLAGS="-C target-feature=+sse4.2" name: "x86_64-apple-darwin + SSE4.2" install: true script: ci/run.sh osx_image: xcode10 stage: build-test-verify # Travis-CI OSX build bots do not support AVX2: - os: osx env: TARGET=x86_64-apple-darwin RUSTFLAGS="-C target-feature=+avx" name: "x86_64-apple-darwin + AVX" install: true script: ci/run.sh osx_image: xcode10 stage: build-test-verify # *BSDs: #- env: TARGET=i686-unknown-freebsd NORUN=1 # script: ci/run.sh #- env: TARGET=x86_64-unknown-freebsd NORUN=1 # script: ci/run.sh #- env: TARGET=x86_64-unknown-netbsd NORUN=1 # script: ci/run.sh # Solaris: #- env: TARGET=x86_64-sun-solaris NORUN=1 # script: ci/run.sh # iOS: - os: osx env: TARGET=x86_64-apple-ios name: "x86_64-apple-ios + SSE2" script: ci/run.sh osx_image: xcode9.4 stage: 64bit-tier2 - name: "aarch64-apple-ios + NEON" env: TARGET=aarch64-apple-ios RUSTFLAGS="-C target-feature=+neon" os: osx osx_image: xcode9.4 script: ci/run.sh stage: 64bit-tier2 # BENCHMARKS: - name: "Benchmarks - x86_64-unknown-linux-gnu" install: TARGET=x86_64-unknown-linux-gnu ./ci/setup_benchmarks.sh # FIXME: Use `core_arch,sleef-sys` features once they works again script: PATH=$(pwd):$PATH NORUN=1 VERIFY=1 FEATURES=ispc ci/benchmark.sh stage: tools - name: "Benchmarks - x86_64-apple-darwin" install: TARGET=x86_64-apple-darwin ./ci/setup_benchmarks.sh # FIXME: Use `core_arch,sleef-sys` features once they works again script: PATH=$(pwd):$PATH NORUN=1 VERIFY=1 FEATURES=ispc ci/benchmark.sh os: osx osx_image: xcode9.4 stage: tools # TOOLS: - name: "Documentation" before_install: - sudo add-apt-repository -y ppa:deadsnakes/ppa - sudo apt-get update -y - sudo apt-get install -y python3.9 install: - cargo install mdbook script: ci/dox.sh stage: tools - name: "rustfmt" install: true script: | if rustup component add rustfmt-preview ; then ci/all.sh check_fmt || true fi stage: tools - name: "clippy" install: true script: | if rustup component add clippy-preview ; then ci/all.sh clippy fi stage: tools allow_failures: # FIXME: ISPC cannot be found? - name: "Benchmarks - x86_64-apple-darwin" # FIXME: i686 fails in inlining, apparently - stage: 32bit-tier1 #- env: TARGET=i686-unknown-freebsd NORUN=1 #- env: TARGET=x86_64-unknown-freebsd NORUN=1 #- env: TARGET=x86_64-unknown-netbsd NORUN=1 #- env: TARGET=x86_64-sun-solaris NORUN=1 # FIXME: TBD - stage: 64bit-tier2 - stage: 32bit-tier2 # FIXME: iOS # https://github.com/rust-lang-nursery/packed_simd/issues/26 - env: TARGET=x86_64-apple-ios # Is this related to the above? Mysterious test failure - name: "aarch64-apple-ios + NEON" # FIXME: https://github.com/rust-lang-nursery/packed_simd/issues/182 - env: TARGET=arm-unknown-linux-gnueabi RUSTFLAGS="-C target-feature=+v7,+neon" - env: TARGET=arm-unknown-linux-gnueabihf RUSTFLAGS="-C target-feature=+v7,+neon" - env: TARGET=armv7-unknown-linux-gnueabihf RUSTFLAGS="-C target-feature=+neon" # FIXME: https://github.com/rust-lang-nursery/packed_simd/issues/183 - env: TARGET=wasm32-unknown-unknown install: travis_retry rustup target add $TARGET before_script: cargo generate-lockfile script: travis_wait 50 ci/run-docker.sh after_script: sleep 5 env: global: secure: "lPHv7s6+AxQYNaFncycVFQt++Y1asQmMhOikQU1ztlP8CK7+hn2m98cg/euOJyzIOb2iJ3ZX4cGZkzw4lc59MQBByb1GtDbazQoUOzVDbVfe9BDD2f8JVoIFh1CMfjPKQ7Gg/rJqWlwrUlSd5GNxPCutKjY7qZhJuR6SQbJjlWaGN2Vd4fVCzKXz8fHRXgMEZS+d+CR4Nsrkb83J3Z4s5kSdJmhYxJ61AWjuzJVwUh4l3/HEYlSL5XXpuh5R2i7W16h1PlNdaTUgkZli1lHzO8+6Q8LzX9+XiLIEVX9lw3A2NdIKGz8E/+7Qs5oYOkwYhjROsDQxIK7xkSM30bQuN7cwMBybAVIyOPJkqXQ1dQyp83KSdsOj7JMyDDRvcEDLI6ehRlm5EcdH7YrReuboN81iUo0Sa7VsuUmgj5hjERCt9r30f9aWuitABai7vKRtjglg7Sp5CrEVPA4PQs6PqKCCRogoggbXJ/Z5Dyw/RZaXPeNR9+qIKN1Vjm9Gew1sRN2JK/3+vXTKtyJXH/uBxgJt4jQlbuShOJuF+BSfTF88sMe67a/357SSOIb4JkaCyd0flDCWYE8576kaHPlVVMT2peXee0LeRXm1e13nG3Na0t3LS/orJLPHOShNQGoDj7qAP5aEKggRya896JGwtvlaBHHTmSQh65G7cyNErZo=" branches: only: - staging # bors r+ - trying # bors try - master notifications: email: on_success: never