Skip to content

azure: split slow linux builders #61370

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 6 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
318 changes: 177 additions & 141 deletions .azure-pipelines/auto.yml
Original file line number Diff line number Diff line change
Expand Up @@ -126,26 +126,62 @@ jobs:

asmjs:
IMAGE: asmjs
i686-gnu:

i686-gnu-1:
IMAGE: i686-gnu
SCRIPT: make ci-subset-1
i686-gnu-2:
IMAGE: i686-gnu
i686-gnu-nopt:
SCRIPT: make ci-subset-2

i686-gnu-nopt-1:
IMAGE: i686-gnu-nopt
SCRIPT: make ci-subset-1
i686-gnu-nopt-2:
IMAGE: i686-gnu-nopt
SCRIPT: make ci-subset-2

test-various:
IMAGE: test-various
x86_64-gnu:

x86_64-gnu-1:
IMAGE: x86_64-gnu
SCRIPT: make ci-subset-1
x86_64-gnu-2:
IMAGE: x86_64-gnu
SCRIPT: make ci-subset-2

x86_64-gnu-full-bootstrap:
IMAGE: x86_64-gnu-full-bootstrap

x86_64-gnu-aux:
IMAGE: x86_64-gnu-aux
SCRIPT: make check-aux EXCLUDE_CARGO=1

x86_64-gnu-cargo:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did we forget to include this from before?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, on Travis x86_64-gnu-cargo is included inside x86_64-gnu-aux. Instead on AppVeyor, to speed things up, cargo is tested inside its own job. I replicated the same thing we do on AppVeyor in Azure Linux.

IMAGE: x86_64-gnu-aux
SCRIPT: ./x.py test src/tools/cargotest src/tools/cargo

x86_64-gnu-tools:
IMAGE: x86_64-gnu-tools

x86_64-gnu-debug:
IMAGE: x86_64-gnu-debug
x86_64-gnu-nopt:

x86_64-gnu-nopt-1:
IMAGE: x86_64-gnu-nopt
x86_64-gnu-distcheck:
SCRIPT: make ci-subset-1
x86_64-gnu-nopt-2:
IMAGE: x86_64-gnu-nopt
SCRIPT: make ci-subset-2

x86_64-gnu-distcheck-1:
IMAGE: x86_64-gnu-distcheck
SCRIPT: ./x.py test distcheck --distcheck-make ci-subset-1
x86_64-gnu-distcheck-2:
IMAGE: x86_64-gnu-distcheck
SCRIPT: ./x.py test distcheck --distcheck-make ci-subset-2

mingw-check:
IMAGE: mingw-check

Expand Down Expand Up @@ -212,139 +248,139 @@ jobs:



- job: Windows
timeoutInMinutes: 600
pool:
vmImage: 'vs2017-win2016'
steps:
- template: steps/run.yml
strategy:
matrix:
# 32/64 bit MSVC tests
x86_64-msvc-1:
MSYS_BITS: 64
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:
MSYS_BITS: 64
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
SCRIPT: make ci-subset-2
i686-msvc-1:
MSYS_BITS: 32
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
SCRIPT: make ci-subset-1
i686-msvc-2:
MSYS_BITS: 32
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
SCRIPT: make ci-subset-2
# MSVC aux tests
x86_64-msvc-aux:
MSYS_BITS: 64
RUST_CHECK_TARGET: check-aux EXCLUDE_CARGO=1
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
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
VCVARS_BAT: vcvars64.bat
# MSVC tools tests
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.
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
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
x86_64-mingw-1:
MSYS_BITS: 64
SCRIPT: make ci-subset-1
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
x86_64-mingw-2:
MSYS_BITS: 64
SCRIPT: make ci-subset-2
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

# 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
DEPLOY: 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
DEPLOY: 1
dist-i686-mingw:
MSYS_BITS: 32
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu --enable-full-tools
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
dist-x86_64-mingw:
MSYS_BITS: 64
SCRIPT: python x.py dist
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu --enable-full-tools
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
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
#- job: Windows
# timeoutInMinutes: 600
# pool:
# vmImage: 'vs2017-win2016'
# steps:
# - template: steps/run.yml
# strategy:
# matrix:
# # 32/64 bit MSVC tests
# x86_64-msvc-1:
# MSYS_BITS: 64
# 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:
# MSYS_BITS: 64
# RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
# SCRIPT: make ci-subset-2
# i686-msvc-1:
# MSYS_BITS: 32
# RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
# SCRIPT: make ci-subset-1
# i686-msvc-2:
# MSYS_BITS: 32
# RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
# SCRIPT: make ci-subset-2
# # MSVC aux tests
# x86_64-msvc-aux:
# MSYS_BITS: 64
# RUST_CHECK_TARGET: check-aux EXCLUDE_CARGO=1
# RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
# 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
# VCVARS_BAT: vcvars64.bat
# # MSVC tools tests
# 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.
# 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
# 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
# x86_64-mingw-1:
# MSYS_BITS: 64
# SCRIPT: make ci-subset-1
# 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
# x86_64-mingw-2:
# MSYS_BITS: 64
# SCRIPT: make ci-subset-2
# 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
#
# # 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
# DEPLOY: 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
# DEPLOY: 1
# dist-i686-mingw:
# MSYS_BITS: 32
# RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu --enable-full-tools
# 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
# dist-x86_64-mingw:
# MSYS_BITS: 64
# SCRIPT: python x.py dist
# RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu --enable-full-tools
# 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
# 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
Loading