#
# Azure Pipelines "auto" branch build for Rust on Linux, macOS, and Windows.
#

pr: none
trigger:
  - auto

variables:
- group: prod-credentials

jobs:
- job: Linux
  timeoutInMinutes: 600
  pool:
    vmImage: ubuntu-16.04
  steps:
  - template: steps/run.yml
  strategy:
    matrix:
      x86_64-gnu-llvm-6.0:
        RUST_BACKTRACE: 1
      dist-x86_64-linux: {}
      dist-x86_64-linux-alt:
        IMAGE: dist-x86_64-linux
      arm-android: {}
      armhf-gnu: {}
      dist-various-1: {}
      dist-various-2: {}
      dist-aarch64-linux: {}
      dist-android: {}
      dist-arm-linux: {}
      dist-armhf-linux: {}
      dist-armv7-linux: {}
      dist-i586-gnu-i586-i686-musl: {}
      dist-i686-freebsd: {}
      dist-i686-linux: {}
      dist-mips-linux: {}
      dist-mips64-linux: {}
      dist-mips64el-linux: {}
      dist-mipsel-linux: {}
      dist-powerpc-linux: {}
      dist-powerpc64-linux: {}
      dist-powerpc64le-linux: {}
      dist-s390x-linux: {}
      dist-x86_64-freebsd: {}
      dist-x86_64-musl: {}
      dist-x86_64-netbsd: {}
      i686-gnu: {}
      i686-gnu-nopt: {}
      test-various: {}
      wasm32: {}
      x86_64-gnu: {}
      x86_64-gnu-full-bootstrap: {}
      x86_64-gnu-aux: {}
      x86_64-gnu-tools:
        DEPLOY_TOOLSTATES_JSON: toolstates-linux.json
      x86_64-gnu-debug: {}
      x86_64-gnu-nopt: {}
      x86_64-gnu-distcheck: {}
      mingw-check: {}

- job: macOS
  timeoutInMinutes: 600
  pool:
    vmImage: macos-10.13
  steps:
  - template: steps/run.yml
  strategy:
    matrix:
      # OSX builders running tests, these run the full test suite.
      # NO_DEBUG_ASSERTIONS=1 to make them go faster, but also do have some
      # runners that run `//ignore-debug` tests.
      #
      # Note that the compiler is compiled to target 10.8 here because the Xcode
      # version that we're using, 8.2, cannot compile LLVM for OSX 10.7.
      x86_64-apple:
        SCRIPT: ./x.py test
        RUST_CONFIGURE_ARGS: --build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc
        RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
        MACOSX_DEPLOYMENT_TARGET: 10.8
        MACOSX_STD_DEPLOYMENT_TARGET: 10.7
        NO_LLVM_ASSERTIONS: 1
        NO_DEBUG_ASSERTIONS: 1

      dist-x86_64-apple:
        SCRIPT: ./x.py dist
        RUST_CONFIGURE_ARGS: --target=aarch64-apple-ios,armv7-apple-ios,armv7s-apple-ios,i386-apple-ios,x86_64-apple-ios --enable-full-tools --enable-sanitizers --enable-profiler --set rust.jemalloc
        RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
        MACOSX_DEPLOYMENT_TARGET: 10.7
        NO_LLVM_ASSERTIONS: 1
        NO_DEBUG_ASSERTIONS: 1
        DIST_REQUIRE_ALL_TOOLS: 1

      dist-x86_64-apple-alt:
        SCRIPT: ./x.py dist
        RUST_CONFIGURE_ARGS: --enable-extended --enable-profiler --set rust.jemalloc
        RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
        MACOSX_DEPLOYMENT_TARGET: 10.7
        NO_LLVM_ASSERTIONS: 1
        NO_DEBUG_ASSERTIONS: 1

      i686-apple:
        SCRIPT: ./x.py test
        RUST_CONFIGURE_ARGS: --build=i686-apple-darwin --set rust.jemalloc
        RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
        MACOSX_DEPLOYMENT_TARGET: 10.8
        MACOSX_STD_DEPLOYMENT_TARGET: 10.7
        NO_LLVM_ASSERTIONS: 1
        NO_DEBUG_ASSERTIONS: 1

      dist-i686-apple:
        SCRIPT: ./x.py dist
        RUST_CONFIGURE_ARGS: --build=i686-apple-darwin --enable-full-tools --enable-profiler --set rust.jemalloc
        RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
        MACOSX_DEPLOYMENT_TARGET: 10.7
        NO_LLVM_ASSERTIONS: 1
        NO_DEBUG_ASSERTIONS: 1
        DIST_REQUIRE_ALL_TOOLS: 1



- job: Windows
  timeoutInMinutes: 600
  pool:
    vmImage: 'vs2017-win2016'
  steps:
  - template: steps/run.yml
  strategy:
    matrix:
      # 32/64 bit MSVC tests
      x86_64-msvc-1:
        RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
        SCRIPT: make ci-subset-1
        # FIXME(#59637)
        NO_DEBUG_ASSERTIONS: 1
        NO_LLVM_ASSERTIONS: 1
      x86_64-msvc-2:
        RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
        SCRIPT: make ci-subset-2
      i686-msvc-1:
        RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
        SCRIPT: make ci-subset-1
        # FIXME(#59637)
        NO_DEBUG_ASSERTIONS: 1
        NO_LLVM_ASSERTIONS: 1
      i686-msvc-2:
        RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
        SCRIPT: make ci-subset-2
        # FIXME(#59637)
        NO_DEBUG_ASSERTIONS: 1
        NO_LLVM_ASSERTIONS: 1
      # MSVC aux tests
      x86_64-msvc-aux:
        RUST_CHECK_TARGET: check-aux EXCLUDE_CARGO=1
        RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
      x86_64-msvc-cargo:
        SCRIPT: python x.py test src/tools/cargotest src/tools/cargo
        RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
        VCVARS_BAT: vcvars64.bat
        # FIXME(#59637)
        NO_DEBUG_ASSERTIONS: 1
        NO_LLVM_ASSERTIONS: 1
      # MSVC tools tests
      x86_64-msvc-tools:
        SCRIPT: src/ci/docker/x86_64-gnu-tools/checktools.sh x.py /tmp/toolstate/toolstates.json windows
        RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --save-toolstates=/tmp/toolstate/toolstates.json

      # 32/64-bit MinGW builds.
      #
      # We are using MinGW with posix threads since LLVM does not compile with
      # the win32 threads version due to missing support for C++'s std::thread.
      #
      # Instead of relying on the MinGW version installed on appveryor we download
      # and install one ourselves so we won't be surprised by changes to appveyor's
      # build image.
      #
      # Finally, note that the downloads below are all in the `rust-lang-ci` S3
      # bucket, but they cleraly didn't originate there! The downloads originally
      # came from the mingw-w64 SourceForge download site. Unfortunately
      # SourceForge is notoriously flaky, so we mirror it on our own infrastructure.
      i686-mingw-1:
        RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
        SCRIPT: make ci-mingw-subset-1
        CUSTOM_MINGW: 1
        # FIXME(#59637)
        NO_DEBUG_ASSERTIONS: 1
        NO_LLVM_ASSERTIONS: 1
      i686-mingw-2:
        RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
        SCRIPT: make ci-mingw-subset-2
        CUSTOM_MINGW: 1
      x86_64-mingw-1:
        SCRIPT: make ci-mingw-subset-1
        RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu
        CUSTOM_MINGW: 1
        # FIXME(#59637)
        NO_DEBUG_ASSERTIONS: 1
        NO_LLVM_ASSERTIONS: 1
      x86_64-mingw-2:
        SCRIPT: make ci-mingw-subset-2
        RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu
        CUSTOM_MINGW: 1

      # 32/64 bit MSVC and GNU deployment
      dist-x86_64-msvc:
        RUST_CONFIGURE_ARGS: >-
          --build=x86_64-pc-windows-msvc
          --target=x86_64-pc-windows-msvc,aarch64-pc-windows-msvc
          --enable-full-tools
          --enable-profiler
        SCRIPT: python x.py dist
        DIST_REQUIRE_ALL_TOOLS: 1
      dist-i686-msvc:
        RUST_CONFIGURE_ARGS: >-
          --build=i686-pc-windows-msvc
          --target=i586-pc-windows-msvc
          --enable-full-tools
          --enable-profiler
        SCRIPT: python x.py dist
        DIST_REQUIRE_ALL_TOOLS: 1
      dist-i686-mingw:
        RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu --enable-full-tools --enable-profiler
        SCRIPT: python x.py dist
        CUSTOM_MINGW: 1
        DIST_REQUIRE_ALL_TOOLS: 1
      dist-x86_64-mingw:
        SCRIPT: python x.py dist
        RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu --enable-full-tools --enable-profiler
        CUSTOM_MINGW: 1
        DIST_REQUIRE_ALL_TOOLS: 1

      # "alternate" deployment, see .travis.yml for more info
      dist-x86_64-msvc-alt:
        RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-extended --enable-profiler
        SCRIPT: python x.py dist
