diff --git a/.azure-pipelines/auto.yml b/.azure-pipelines/auto.yml
index c2ea8b756e0..8035feeeefb 100644
--- a/.azure-pipelines/auto.yml
+++ b/.azure-pipelines/auto.yml
@@ -7,7 +7,7 @@ trigger:
   - auto
 
 variables:
-- group: prod-credentials
+- group: real-prod-credentials
 
 jobs:
 - job: Linux
@@ -138,8 +138,9 @@ jobs:
         IMAGE: x86_64-gnu-full-bootstrap
       x86_64-gnu-aux:
         IMAGE: x86_64-gnu-aux
-      x86_64-gnu-tools:
-        IMAGE: x86_64-gnu-tools
+        # FIXME: needs reenabling here rather than Travis
+      # x86_64-gnu-tools:
+      #   IMAGE: x86_64-gnu-tools
       x86_64-gnu-debug:
         IMAGE: x86_64-gnu-debug
       x86_64-gnu-nopt:
diff --git a/.travis.yml b/.travis.yml
index dbfc6c81963..ec90dd3c8fb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -19,215 +19,9 @@ env:
 matrix:
   fast_finish: true
   include:
-    # Images used in testing PR and try-build should be run first.
-    - env: IMAGE=x86_64-gnu-llvm-6.0 RUST_BACKTRACE=1
-      name: x86_64-gnu-llvm-6.0
-      if: branch = auto
-
-    - env: IMAGE=dist-x86_64-linux DEPLOY=1
-      name: dist-x86_64-linux
-      if: branch = auto
-
-    # "alternate" deployments, these are "nightlies" but have LLVM assertions
-    # turned on, they're deployed to a different location primarily for
-    # additional testing.
-    - env: IMAGE=dist-x86_64-linux DEPLOY_ALT=1
-      name: dist-x86_64-linux-alt
-      if: branch = auto
-
-    - env: >
-        SCRIPT="./x.py dist"
-        RUST_CONFIGURE_ARGS="--enable-extended --enable-profiler --enable-lldb --set rust.jemalloc"
-        SRC=.
-        DEPLOY_ALT=1
-        RUSTC_RETRY_LINKER_ON_SEGFAULT=1
-        MACOSX_DEPLOYMENT_TARGET=10.7
-        NO_LLVM_ASSERTIONS=1
-        NO_DEBUG_ASSERTIONS=1
-      os: osx
-      osx_image: xcode9.3-moar
-      name: dist-x86_64-apple-alt
-      if: branch = auto
-
-    # macOS builders. These are placed near the beginning because they are very
-    # slow to run.
-
-    # 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.
-    - env: >
-        SCRIPT="./x.py test"
-        RUST_CONFIGURE_ARGS="--build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc"
-        SRC=.
-        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
-      os: osx
-      osx_image: xcode9.3-moar
-      name: x86_64-apple
-      if: branch = auto
-
-    - env: >
-        SCRIPT="./x.py test"
-        RUST_CONFIGURE_ARGS="--build=i686-apple-darwin --set rust.jemalloc"
-        SRC=.
-        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
-      os: osx
-      osx_image: xcode9.3-moar
-      name: i686-apple
-      if: branch = auto
-
-    # OSX builders producing releases. These do not run the full test suite and
-    # just produce a bunch of artifacts.
-    #
-    # Note that these are running in the `xcode7` image instead of the
-    # `xcode8.2` image as above. That's because we want to build releases for
-    # OSX 10.7 and `xcode7` is the latest Xcode able to compile LLVM for 10.7.
-    - env: >
-        SCRIPT="./x.py dist"
-        RUST_CONFIGURE_ARGS="--build=i686-apple-darwin --enable-full-tools --enable-profiler --enable-lldb --set rust.jemalloc"
-        SRC=.
-        DEPLOY=1
-        RUSTC_RETRY_LINKER_ON_SEGFAULT=1
-        MACOSX_DEPLOYMENT_TARGET=10.7
-        NO_LLVM_ASSERTIONS=1
-        NO_DEBUG_ASSERTIONS=1
-        DIST_REQUIRE_ALL_TOOLS=1
-      os: osx
-      osx_image: xcode9.3-moar
-      name: dist-i686-apple
-      if: branch = auto
-
-    - env: >
-        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 --enable-lldb --set rust.jemalloc"
-        SRC=.
-        DEPLOY=1
-        RUSTC_RETRY_LINKER_ON_SEGFAULT=1
-        MACOSX_DEPLOYMENT_TARGET=10.7
-        NO_LLVM_ASSERTIONS=1
-        NO_DEBUG_ASSERTIONS=1
-        DIST_REQUIRE_ALL_TOOLS=1
-      os: osx
-      osx_image: xcode9.3-moar
-      name: dist-x86_64-apple
-      if: branch = auto
-
-    # Linux builders, remaining docker images
-    - env: IMAGE=arm-android
-      name: arm-android
-      if: branch = auto
-    - env: IMAGE=armhf-gnu
-      name: armhf-gnu
-      if: branch = auto
-    - env: IMAGE=dist-various-1 DEPLOY=1
-      name: dist-various-1
-      if: branch = auto
-    - env: IMAGE=dist-various-2 DEPLOY=1
-      name: dist-various-2
-      if: branch = auto
-    - env: IMAGE=dist-aarch64-linux DEPLOY=1
-      name: dist-aarch64-linux
-      if: branch = auto
-    - env: IMAGE=dist-android DEPLOY=1
-      name: dist-android
-      if: branch = auto
-    - env: IMAGE=dist-arm-linux DEPLOY=1
-      name: dist-arm-linux
-      if: branch = auto
-    - env: IMAGE=dist-armhf-linux DEPLOY=1
-      name: dist-armhf-linux
-      if: branch = auto
-    - env: IMAGE=dist-armv7-linux DEPLOY=1
-      name: dist-armv7-linux
-      if: branch = auto
-    - env: IMAGE=dist-i586-gnu-i586-i686-musl DEPLOY=1
-      name: dist-i586-gnu-i586-i686-musl
-      if: branch = auto
-    - env: IMAGE=dist-i686-freebsd DEPLOY=1
-      name: dist-i686-freebsd
-      if: branch = auto
-    - env: IMAGE=dist-i686-linux DEPLOY=1
-      name: dist-i686-linux
-      if: branch = auto
-    - env: IMAGE=dist-mips-linux DEPLOY=1
-      name: dist-mips-linux
-      if: branch = auto
-    - env: IMAGE=dist-mips64-linux DEPLOY=1
-      name: dist-mips64-linux
-      if: branch = auto
-    - env: IMAGE=dist-mips64el-linux DEPLOY=1
-      name: dist-mips64el-linux
-      if: branch = auto
-    - env: IMAGE=dist-mipsel-linux DEPLOY=1
-      name: dist-mipsel-linux
-      if: branch = auto
-    - env: IMAGE=dist-powerpc-linux DEPLOY=1
-      name: dist-powerpc-linux
-      if: branch = auto
-    - env: IMAGE=dist-powerpc64-linux DEPLOY=1
-      name: dist-powerpc64-linux
-      if: branch = auto
-    - env: IMAGE=dist-powerpc64le-linux DEPLOY=1
-      name: dist-powerpc64le-linux
-      if: branch = auto
-    - env: IMAGE=dist-s390x-linux DEPLOY=1
-      name: dist-s390x-linux
-      if: branch = auto
-    - env: IMAGE=dist-x86_64-freebsd DEPLOY=1
-      name: dist-x86_64-freebsd
-      if: branch = auto
-    - env: IMAGE=dist-x86_64-musl DEPLOY=1
-      name: dist-x86_64-musl
-      if: branch = auto
-    - env: IMAGE=dist-x86_64-netbsd DEPLOY=1
-      name: dist-x86_64-netbsd
-      if: branch = auto
-    - env: IMAGE=asmjs
-      name: asmjs
-      if: branch = auto
-    - env: IMAGE=i686-gnu
-      name: i686-gnu
-      if: branch = auto
-    - env: IMAGE=i686-gnu-nopt
-      name: i686-gnu-nopt
-      if: branch = auto
-    - env: IMAGE=test-various
-      name: test-various
-      if: branch = auto
-    - env: IMAGE=x86_64-gnu
-      name: x86_64-gnu
-      if: branch = auto
-    - env: IMAGE=x86_64-gnu-full-bootstrap
-      name: x86_64-gnu-full-bootstrap
-      if: branch = auto
-    - env: IMAGE=x86_64-gnu-aux
-      name: x86_64-gnu-aux
-      if: branch = auto
     - env: IMAGE=x86_64-gnu-tools
       name: x86_64-gnu-tools
       if: branch = auto OR (type = pull_request AND commit_message =~ /(?i:^update.*\b(rls|rustfmt|clippy|miri|cargo)\b)/)
-    - env: IMAGE=x86_64-gnu-debug
-      name: x86_64-gnu-debug
-      if: branch = auto
-    - env: IMAGE=x86_64-gnu-nopt
-      name: x86_64-gnu-nopt
-      if: branch = auto
-    - env: IMAGE=x86_64-gnu-distcheck
-      name: x86_64-gnu-distcheck
-      if: branch = auto
-    - env: IMAGE=mingw-check
-      name: mingw-check
-      if: branch = auto
 
 before_install:
   # We'll use the AWS cli to download/upload cached docker layers as well as
diff --git a/appveyor.yml b/appveyor.yml
index cd9011730aa..ee1511a0394 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -9,125 +9,12 @@ environment:
   CARGO_HTTP_CHECK_REVOKE: false
 
   matrix:
-  # 32/64 bit MSVC tests
-  - CI_JOB_NAME: x86_64-msvc
-    MSYS_BITS: 64
-    RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
-    SCRIPT: python x.py test
-    # FIXME(#59637)
-    NO_DEBUG_ASSERTIONS: 1
-    NO_LLVM_ASSERTIONS: 1
-  - CI_JOB_NAME: i686-msvc-1
-    MSYS_BITS: 32
-    RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
-    SCRIPT: make ci-subset-1
-  - CI_JOB_NAME: i686-msvc-2
-    MSYS_BITS: 32
-    RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
-    SCRIPT: make ci-subset-2
-
-  # MSVC aux tests
-  - CI_JOB_NAME: x86_64-msvc-aux
-    MSYS_BITS: 64
-    RUST_CHECK_TARGET: check-aux EXCLUDE_CARGO=1
-    RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
-  - CI_JOB_NAME: x86_64-msvc-cargo
-    MSYS_BITS: 64
-    SCRIPT: python x.py test src/tools/cargotest src/tools/cargo
-    RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
-
   # MSVC tools tests
   - CI_JOB_NAME: x86_64-msvc-tools
     MSYS_BITS: 64
     SCRIPT: src/ci/docker/x86_64-gnu-tools/checktools.sh x.py /tmp/toolstates.json windows
     RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --save-toolstates=/tmp/toolstates.json --enable-test-miri
 
-  # 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.
-  - CI_JOB_NAME: i686-mingw-1
-    MSYS_BITS: 32
-    RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
-    SCRIPT: make ci-subset-1
-    MINGW_URL: https://rust-lang-ci2.s3.amazonaws.com/rust-ci-mirror
-    MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
-    MINGW_DIR: mingw32
-    # FIXME(#59637)
-    NO_DEBUG_ASSERTIONS: 1
-    NO_LLVM_ASSERTIONS: 1
-  - CI_JOB_NAME: i686-mingw-2
-    MSYS_BITS: 32
-    RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
-    SCRIPT: make ci-subset-2
-    MINGW_URL: https://rust-lang-ci2.s3.amazonaws.com/rust-ci-mirror
-    MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
-    MINGW_DIR: mingw32
-  - CI_JOB_NAME: x86_64-mingw
-    MSYS_BITS: 64
-    SCRIPT: python x.py test
-    RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu
-    MINGW_URL: https://rust-lang-ci2.s3.amazonaws.com/rust-ci-mirror
-    MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z
-    MINGW_DIR: mingw64
-    # FIXME(#59637)
-    NO_DEBUG_ASSERTIONS: 1
-    NO_LLVM_ASSERTIONS: 1
-
-  # 32/64 bit MSVC and GNU deployment
-  - CI_JOB_NAME: 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
-    DEPLOY: 1
-  - CI_JOB_NAME: 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
-    DEPLOY: 1
-  - CI_JOB_NAME: dist-i686-mingw
-    MSYS_BITS: 32
-    RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu --enable-full-tools --enable-profiler
-    SCRIPT: python x.py dist
-    MINGW_URL: https://rust-lang-ci2.s3.amazonaws.com/rust-ci-mirror
-    MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
-    MINGW_DIR: mingw32
-    DIST_REQUIRE_ALL_TOOLS: 1
-    DEPLOY: 1
-  - CI_JOB_NAME: dist-x86_64-mingw
-    MSYS_BITS: 64
-    SCRIPT: python x.py dist
-    RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu --enable-full-tools --enable-profiler
-    MINGW_URL: https://rust-lang-ci2.s3.amazonaws.com/rust-ci-mirror
-    MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z
-    MINGW_DIR: mingw64
-    DIST_REQUIRE_ALL_TOOLS: 1
-    DEPLOY: 1
-
-  # "alternate" deployment, see .travis.yml for more info
-  - CI_JOB_NAME: dist-x86_64-msvc-alt
-    MSYS_BITS: 64
-    RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-extended --enable-profiler
-    SCRIPT: python x.py dist
-    DEPLOY_ALT: 1
-
 matrix:
   fast_finish: true
 
@@ -222,54 +109,6 @@ test_script:
   - set NO_CCACHE=1
   - sh src/ci/run.sh
 
-on_failure:
-  # Dump crash log
-  - set PATH=%PATH%;"C:\Program Files (x86)\Windows Kits\10\Debuggers\X64"
-  - if exist %LOCALAPPDATA%\CrashDumps for %%f in (%LOCALAPPDATA%\CrashDumps\*) do cdb -c "k;q" -G -z "%%f"
-
 branches:
   only:
     - auto
-
-before_deploy:
-  - ps: |
-        New-Item -Path deploy -ItemType directory
-        Remove-Item -Recurse -Force build\dist\doc
-        Get-ChildItem -Path build\dist | Move-Item -Destination deploy
-        Get-ChildItem -Path deploy | Foreach-Object {
-          Push-AppveyorArtifact $_.FullName -FileName ${env:APPVEYOR_REPO_COMMIT}/$_
-        }
-
-deploy:
-  - provider: S3
-    access_key_id: $(AWS_ACCESS_KEY_ID)
-    secret_access_key: $(AWS_SECRET_ACCESS_KEY)
-    bucket: rust-lang-ci2
-    set_public: true
-    region: us-west-1
-    artifact: /.*/
-    folder: rustc-builds
-    on:
-      branch: auto
-      DEPLOY: 1
-    max_error_retry: 5
-
-  # This provider is the same as the one above except that it has a slightly
-  # different upload directory and a slightly different trigger
-  - provider: S3
-    access_key_id: $(AWS_ACCESS_KEY_ID)
-    secret_access_key: $(AWS_SECRET_ACCESS_KEY)
-    bucket: rust-lang-ci2
-    set_public: true
-    region: us-west-1
-    artifact: /.*/
-    folder: rustc-builds-alt
-    on:
-      branch: auto
-      DEPLOY_ALT: 1
-    max_error_retry: 5
-
-# init:
-#   - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
-# on_finish:
-#   - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))