From 6f838b4d4ad954eda685235b807cb6e5c44a8b14 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Thu, 27 Jun 2019 05:30:57 -0700 Subject: [PATCH] ci: Move most builders to Azure Pipelines This commit disables all builders on Travis and almost all builders on AppVeyor now that they're all running on Azure Pipelines. There is one remaining builder on AppVeyor which hasn't been migrated yet due to a test failure on Azure, which we'll be debugging soon. One remaining builder is left on Travis which is the tools builder whenever a submodule is changed, but we'll probably turn that off soon since it's just for PRs. The other major change in this PR is that the auto builders on Azure are now configured with "real" prod credentials which should cause them to publish all artifacts into the official CI buckets. --- .azure-pipelines/auto.yml | 7 +- .travis.yml | 206 -------------------------------------- appveyor.yml | 161 ----------------------------- 3 files changed, 4 insertions(+), 370 deletions(-) diff --git a/.azure-pipelines/auto.yml b/.azure-pipelines/auto.yml index c2ea8b756e03c..8035feeeefb97 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 dbfc6c81963b3..ec90dd3c8fbcc 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 cd9011730aafb..ee1511a0394d4 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'))