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