#
# 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-7:
        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,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


- 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
        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
