@@ -27,24 +27,141 @@ shared_defs:
2727 << : *base-job
2828
2929 - &job-windows-8c
30- os : windows-2019-8core-32gb
30+ os : windows-2022
3131 << : *base-job
3232
3333 - &job-windows-16c
34- os : windows-2019-16core-64gb
34+ os : windows-2022
3535 << : *base-job
3636
3737 - &job-aarch64-linux
3838 os : [ self-hosted, ARM64, linux ]
3939
4040pr :
41- - name : mingw-check
42- << : *job-linux-4c
43- - name : mingw-check-tidy
44- << : *job-linux-4c
45- - name : x86_64-gnu-llvm-17
46- env :
47- ENABLE_GCC_CODEGEN : " 1"
48- << : *job-linux-16c
49- - name : x86_64-gnu-tools
50- << : *job-linux-16c
41+ - name : x86_64-msvc
42+ env :
43+ RUST_CONFIGURE_ARGS : --build=x86_64-pc-windows-msvc --enable-profiler
44+ SCRIPT : make ci-msvc
45+ << : *job-windows-8c
46+
47+ - name : i686-msvc
48+ env :
49+ RUST_CONFIGURE_ARGS : --build=i686-pc-windows-msvc
50+ SCRIPT : make ci-msvc
51+ << : *job-windows-8c
52+
53+ - name : x86_64-msvc-ext
54+ env :
55+ SCRIPT : python x.py --stage 2 test src/tools/cargotest src/tools/cargo && src/ci/docker/host-x86_64/x86_64-gnu-tools/checktools.sh x.py /tmp/toolstate/toolstates.json windows
56+ HOST_TARGET : x86_64-pc-windows-msvc
57+ RUST_CONFIGURE_ARGS : --build=x86_64-pc-windows-msvc --enable-lld --save-toolstates=/tmp/toolstate/toolstates.json
58+ DEPLOY_TOOLSTATES_JSON : toolstates-windows.json
59+ << : *job-windows-8c
60+
61+ # 32/64-bit MinGW builds.
62+ #
63+ # We are using MinGW with POSIX threads since LLVM requires
64+ # C++'s std::thread which is disabled in libstdc++ with win32 threads.
65+ # FIXME: Libc++ doesn't have this limitation so we can avoid
66+ # winpthreads if we switch to it.
67+ #
68+ # Instead of relying on the MinGW version installed on CI we download
69+ # and install one ourselves so we won't be surprised by changes to CI's
70+ # build image.
71+ #
72+ # Finally, note that the downloads below are all in the `rust-lang-ci` S3
73+ # bucket, but they clearly didn't originate there! The downloads originally
74+ # came from the mingw-w64 SourceForge download site. Unfortunately
75+ # SourceForge is notoriously flaky, so we mirror it on our own infrastructure.
76+
77+ - name : i686-mingw
78+ env :
79+ RUST_CONFIGURE_ARGS : --build=i686-pc-windows-gnu
80+ SCRIPT : make ci-mingw
81+ # We are intentionally allowing an old toolchain on this builder (and that's
82+ # incompatible with LLVM downloads today).
83+ NO_DOWNLOAD_CI_LLVM : 1
84+ CUSTOM_MINGW : 1
85+ << : *job-windows-8c
86+
87+ - name : x86_64-mingw
88+ env :
89+ SCRIPT : make ci-mingw
90+ RUST_CONFIGURE_ARGS : >-
91+ --build=x86_64-pc-windows-gnu
92+ --enable-profiler
93+ # We are intentionally allowing an old toolchain on this builder (and that's
94+ # incompatible with LLVM downloads today).
95+ NO_DOWNLOAD_CI_LLVM : 1
96+ CUSTOM_MINGW : 1
97+ << : *job-windows-8c
98+
99+ - name : dist-x86_64-msvc
100+ env :
101+ RUST_CONFIGURE_ARGS : >-
102+ --build=x86_64-pc-windows-msvc
103+ --host=x86_64-pc-windows-msvc
104+ --target=x86_64-pc-windows-msvc
105+ --enable-full-tools
106+ --enable-profiler
107+ --set rust.codegen-units=1
108+ SCRIPT : python x.py build --set rust.debug=true opt-dist && PGO_HOST=x86_64-pc-windows-msvc ./build/x86_64-pc-windows-msvc/stage0-tools-bin/opt-dist windows-ci -- python x.py dist bootstrap --include-default-paths
109+ DIST_REQUIRE_ALL_TOOLS : 1
110+ << : *job-windows-8c
111+
112+ - name : dist-i686-msvc
113+ env :
114+ RUST_CONFIGURE_ARGS : >-
115+ --build=i686-pc-windows-msvc
116+ --host=i686-pc-windows-msvc
117+ --target=i686-pc-windows-msvc,i586-pc-windows-msvc
118+ --enable-full-tools
119+ --enable-profiler
120+ SCRIPT : python x.py dist bootstrap --include-default-paths
121+ DIST_REQUIRE_ALL_TOOLS : 1
122+ << : *job-windows-8c
123+
124+ - name : dist-aarch64-msvc
125+ env :
126+ RUST_CONFIGURE_ARGS : >-
127+ --build=x86_64-pc-windows-msvc
128+ --host=aarch64-pc-windows-msvc
129+ --enable-full-tools
130+ --enable-profiler
131+ SCRIPT : python x.py dist bootstrap --include-default-paths
132+ DIST_REQUIRE_ALL_TOOLS : 1
133+ << : *job-windows-8c
134+
135+ - name : dist-i686-mingw
136+ env :
137+ RUST_CONFIGURE_ARGS : >-
138+ --build=i686-pc-windows-gnu
139+ --enable-full-tools
140+ --enable-profiler
141+ # We are intentionally allowing an old toolchain on this builder (and that's
142+ # incompatible with LLVM downloads today).
143+ NO_DOWNLOAD_CI_LLVM : 1
144+ SCRIPT : python x.py dist bootstrap --include-default-paths
145+ CUSTOM_MINGW : 1
146+ DIST_REQUIRE_ALL_TOOLS : 1
147+ << : *job-windows-8c
148+
149+ - name : dist-x86_64-mingw
150+ env :
151+ SCRIPT : python x.py dist bootstrap --include-default-paths
152+ RUST_CONFIGURE_ARGS : >-
153+ --build=x86_64-pc-windows-gnu
154+ --enable-full-tools
155+ --enable-profiler
156+ # We are intentionally allowing an old toolchain on this builder (and that's
157+ # incompatible with LLVM downloads today).
158+ NO_DOWNLOAD_CI_LLVM : 1
159+ CUSTOM_MINGW : 1
160+ DIST_REQUIRE_ALL_TOOLS : 1
161+ << : *job-windows-8c
162+
163+ - name : dist-x86_64-msvc-alt
164+ env :
165+ RUST_CONFIGURE_ARGS : --build=x86_64-pc-windows-msvc --enable-extended --enable-profiler
166+ SCRIPT : python x.py dist bootstrap --include-default-paths
167+ << : *job-windows-8c
0 commit comments