about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMarcoIeni <11428655+MarcoIeni@users.noreply.github.com>2024-11-29 16:04:12 +0100
committerMarcoIeni <11428655+MarcoIeni@users.noreply.github.com>2024-11-29 16:04:12 +0100
commit5b9a77a09dffec853d37fe7f722166b3996823d6 (patch)
tree14f65effb8b2f86119d9cad53735cc907cebf3bf
parent0c4f3a45b86c77b0a89ff06703aa6097af35d924 (diff)
downloadrust-5b9a77a09dffec853d37fe7f722166b3996823d6.tar.gz
rust-5b9a77a09dffec853d37fe7f722166b3996823d6.zip
CI: split x86_64-mingw job
-rw-r--r--src/bootstrap/mk/Makefile.in8
-rw-r--r--src/ci/github-actions/jobs.yml16
-rw-r--r--src/ci/shared.sh3
3 files changed, 20 insertions, 7 deletions
diff --git a/src/bootstrap/mk/Makefile.in b/src/bootstrap/mk/Makefile.in
index 92c8f5dc452..a1f38b9ac14 100644
--- a/src/bootstrap/mk/Makefile.in
+++ b/src/bootstrap/mk/Makefile.in
@@ -108,11 +108,13 @@ ci-msvc: ci-msvc-py ci-msvc-ps1
 
 ## MingW native builders
 
-# test both x and bootstrap entrypoints
+# Set of tests that should represent half of the time of the test suite.
+# Used to split tests across multiple CI runners.
+# Test both x and bootstrap entrypoints.
 ci-mingw-x:
-	$(Q)$(CFG_SRC_DIR)/x test --stage 2 tidy
+	$(Q)$(CFG_SRC_DIR)/x test --stage 2 --skip=compiler --skip=src
 ci-mingw-bootstrap:
-	$(Q)$(BOOTSTRAP) test --stage 2 --skip tidy
+	$(Q)$(BOOTSTRAP) test --stage 2 --skip=tests --skip=coverage-map --skip=coverage-run --skip=library --skip=tidyselftest
 ci-mingw: ci-mingw-x ci-mingw-bootstrap
 
 .PHONY: dist
diff --git a/src/ci/github-actions/jobs.yml b/src/ci/github-actions/jobs.yml
index 2f59892acf6..454c855c75d 100644
--- a/src/ci/github-actions/jobs.yml
+++ b/src/ci/github-actions/jobs.yml
@@ -439,14 +439,24 @@ auto:
       NO_DOWNLOAD_CI_LLVM: 1
     <<: *job-windows-8c
 
-  - image: x86_64-mingw
+  # x86_64-mingw is split into two jobs to run tests in parallel.
+  - image: x86_64-mingw-1
     env:
-      SCRIPT: make ci-mingw
+      SCRIPT: make ci-mingw-x
       RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu
       # We are intentionally allowing an old toolchain on this builder (and that's
       # incompatible with LLVM downloads today).
       NO_DOWNLOAD_CI_LLVM: 1
-    <<: *job-windows-8c
+    <<: *job-windows
+
+  - image: x86_64-mingw-2
+    env:
+      SCRIPT: make ci-mingw-bootstrap
+      RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu
+      # We are intentionally allowing an old toolchain on this builder (and that's
+      # incompatible with LLVM downloads today).
+      NO_DOWNLOAD_CI_LLVM: 1
+    <<: *job-windows
 
   - image: dist-x86_64-msvc
     env:
diff --git a/src/ci/shared.sh b/src/ci/shared.sh
index 1e6a008a5de..9fce68947f4 100644
--- a/src/ci/shared.sh
+++ b/src/ci/shared.sh
@@ -53,7 +53,8 @@ function isLinux {
 }
 
 function isKnownToBeMingwBuild {
-    isGitHubActions && [[ "${CI_JOB_NAME}" == *mingw ]]
+    # CI_JOB_NAME must end with "mingw" and optionally `-N` to be considered a MinGW build.
+    isGitHubActions && [[ "${CI_JOB_NAME}" =~ mingw(-[0-9]+)?$ ]]
 }
 
 function isCiBranch {