Commit Graph

2623 Commits

Author SHA1 Message Date
Chris Denton db1449aed5 Initialize mingw for the runner's user 2025-07-19 22:05:47 +00:00
MarcoIeni a886852e23 ci: use windows 22 for all free runners 2025-07-17 14:54:14 +02:00
León Orell Valerian Liehr 6dfec1a88f Rollup merge of #143964 - nikic:docker-script-arg, r=marcoieni
Fix handling of SCRIPT_ARG in docker images

Instead of making this a build parameter, pass the SCRIPT as an environment variable.

To this purpose, normalize on always referring to a script in `/scripts`.

For i686-gnu-nopt-2 I had to create a separate script, because Docker seems to be really terrible at command line argument parsing, so it's not possible to pass an environment variable that contains whitespace.

Fixes https://github.com/rust-lang/rust/issues/143962.

try-job: `dist-x86_64-linux`
try-job: `i686-gnu-nopt-*`
try-job: `i686-gnu-*`
try-job: `x86_64-gnu-llvm-19-*`
try-job: `x86_64-gnu-llvm-20-*`
2025-07-17 03:58:35 +02:00
León Orell Valerian Liehr a07ae6287a Rollup merge of #143851 - lolbinarycat:bootstrap-node_modules, r=Kobzol
ci cleanup: rustdoc-gui-test now installs browser-ui-test

this removes the need for --unsafe-perm in the Dockerfile.

cc ```@GuillaumeGomez``` ```@Kobzol```
2025-07-17 03:58:32 +02:00
binarycat bbb114ef61 ci cleanup: rustdoc-gui-test now installs browser-ui-test
this removes the need for --unsafe-perm in the Dockerfile.
2025-07-15 14:39:53 -05:00
Nikita Popov 4b421d44e2 Fix handling of SCRIPT_ARG in docker images
Instead of making this a build parameter, pass the SCRIPT as an
environment variable.

To this purpose, normalize on always referring to a script in
`/scripts`.

For i686-gnu-nopt-2 I had to create a separate script, because
Docker seems to be really terrible at command line argument
parsing, so it's not possible to pass an environment variable that
contains whitespace.
2025-07-15 16:23:15 +02:00
Matthias Krüger ee1595cc68 Rollup merge of #143786 - nikic:ci-job-name-fallback, r=marcoieni
Fix fallback for CI_JOB_NAME

If CI_JOB_NAME is not specified, it's supposed to fall back to the image name, which is `$image`, not `$IMAGE`.

Failing to set the correct CI_JOB_NAME causes failures when running `dist-ohos-*` images locally.
2025-07-13 15:16:01 +02:00
Nikita Popov 34426dce3d Fix fallback for CI_JOB_NAME
If CI_JOB_NAME is not specified, it's supposed to fall back to
the image name, which is `$image`, not `$IMAGE`.

Failing to set the correct CI_JOB_NAME causes failures when running
`dist-ohos-*` images locally.
2025-07-11 15:05:14 +02:00
Trevor Gross 6debe03634 Rollup merge of #140136 - dpaoliello:arm64winci, r=Kobzol
Add an aarch64-msvc build running on ARM64 Windows

Resurrecting rust-lang/rust#126341

Per <https://github.com/rust-lang/rfcs/pull/3817> we intend to promote `aarch64-pc-windows-msvc` to Tier 1. As part of that work, we are adding a pre-merge CI job to validate that changes do not break this target.

Additionally, for consistency, the `dist-aarch64-msvc` job will also be run on Arm64 Windows runners.

r? ``@Kobzol``

try-job: `*aarch64-msvc*`
2025-07-10 20:20:37 -04:00
许杰友 Jieyou Xu (Joe) 9c6ef43341 Rollup merge of #143415 - Gelbpunkt:cleanup-dist-ppc64le-toolchain, r=marcoieni
Get rid of build-powerpc64le-toolchain.sh

The dist-powerpc64le-linux-musl runner never actually used the toolchain that the script produced, it instead used the one from crosstool-ng.

The dist-powerpc64le-linux-gnu runner did use it, from what I can tell mainly to get a glibc 2.17 version with ppc64le support backported. Since crosstool-ng has the necessary patches, we can just use crosstool-ng to get an appropriate toolchain. While at it, use kernel 3.10 headers since that's the version documented in platform support for this target.

try-job: dist-powerpc64le-linux-gnu
try-job: dist-powerpc64le-linux-musl
2025-07-07 19:45:39 +08:00
Jakub Beránek baa55aef3a Fix CI 2025-07-06 17:25:19 +02:00
Jens Reidel 12bc4096dc Get rid of build-powerpc64le-toolchain.sh
The dist-powerpc64le-linux-musl runner never actually used the toolchain
that the script produced, it instead used the one from crosstool-ng.

The dist-powerpc64le-linux-gnu runner did use it, from what I can tell
mainly to get a glibc 2.17 version with ppc64le support backported.
Since crosstool-ng has the necessary patches, we can just use
crosstool-ng to get an appropriate toolchain. While at it, use kernel
3.10 headers since that's the version documented in platform support for
this target.

Signed-off-by: Jens Reidel <adrian@travitia.xyz>
2025-07-04 10:46:12 +02:00
Guillaume Gomez 9092fbbee1 Rollup merge of #143384 - GuillaumeGomez:update-browser-ui-test, r=kobzol
Update browser-ui-test version to `0.21.1`

One day I'll find time and motivation to use `package.json` instead. 😆

r? `@Kobzol`
2025-07-03 19:45:33 +02:00
Guillaume Gomez c2465259bf Update browser-ui-test version to 0.21.1 2025-07-03 18:08:23 +02:00
bors d6120810e5 Auto merge of #143294 - ChrisDenton:rename-mingw, r=Kobzol
Rename `mingw-*` CI jobs to `pr-*`

The name `mingw` confuses people because these CI jobs now do much more than just cross-compile to mingw.

This is basically a find/replace. I chose the name `pr-` because it's job is to do general PR checks,
2025-07-03 07:23:17 +00:00
Matthias Krüger c572231fb9 Rollup merge of #143274 - marcoieni:optional-jobs, r=Kobzol
ci: support optional jobs

try-job: optional-mingw-check-1
2025-07-02 19:28:09 +02:00
Matthias Krüger 453a2a9102 Rollup merge of #142886 - Enselic:aarch64-panic, r=cuviper
ci: aarch64-gnu: Stop skipping `panic_abort_doc_tests`

The skipped test passes since `nightly-2024-11-29`. See https://github.com/rust-lang/rust/issues/123733#issuecomment-2928770365 and https://github.com/rust-lang/rust/issues/123733#issuecomment-2929091266 for more info.

Let's stop skipping it to increase the chance of detecting a regression.

r? ``````@cuviper`````` who added the skip in https://github.com/rust-lang/rust/pull/123828

Also see https://github.com/rust-lang/rust/pull/142304 for an alternative regression test that I am hoping to also land in the near future to complement the test we now stop skipping, but I need to investigate that setup more.
2025-07-02 19:28:06 +02:00
Chris Denton 6671d9b92a Rename mingw-check-tidy to tidy 2025-07-02 08:48:20 +00:00
Chris Denton 62949cd2d6 Rename mingw-* CI jobs to pr-* 2025-07-01 20:25:56 +00:00
MarcoIeni 311a99cac4 ci: support optional jobs 2025-07-01 11:25:10 +02:00
Jakub Beránek c2daa28020 Do not enable LLD by default in the dist profile 2025-07-01 08:19:34 +02:00
Matthias Krüger 5e725a6367 Rollup merge of #142963 - Kobzol:try-build-skip, r=jieyouxu
Skip unnecessary components in x64 try builds

We unnecessarily rebuild `wasm-component-ld`, `llvm-bitcode-linker` and Cranelift during the intermediate PGO builds several times times, which is unnecessarily and increases the duration of try builds. This PR also disables some unnecessary dist components.

r? `````@jieyouxu`````
2025-06-28 22:05:29 +02:00
Michael Goulet 4dca555efa Rollup merge of #143010 - GuillaumeGomez:update-browser-ui-test, r=Kobzol
Update `browser-ui-test` version to `0.20.7`

This new version fixes some bugs and improve error messages.

r? `````@Kobzol`````
2025-06-26 20:15:25 -04:00
bors 8f21a5c92e Auto merge of #142581 - Kobzol:bootstrap-std-method, r=jieyouxu
Enforce in bootstrap that build must have stage at least 1

This PR is a step towards https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Proposal.20to.20cleanup.20stages.20and.20steps.20after.20the.20redesign/with/523586917. It's very hard or me to make self-contained changes to bootstrap at this moment, so this PR kind of does several things:

1) (first two commits) Try to reduce the usage of `Std::new` in bootstrap, and replace it with a `Builder::std` method (similar to `Builder::compiler`). This is mostly to remove executions of the `Std` step for stage 0, which doesn't make a lot of sense; I'd like to ideally have the invariant that when a step is invoked, it actually builds or does something. Eventually, I'd like for everything to go through `Builder::std`. (Note: I'm not totally married to this idea, if you don't like it, we can remove it from this PR. I mostly did it right now to remove stage 0 std steps from snapshot tests, which shouldn't be there, but we can also filter them out in a different way)
2) Make sure that when you pass `x build compiler`, only the `Assemble` root level step will be invoked, and not the `Rustc` step. Before, both were invoked, which actually ran `Rustc` twice, once with all `crates` filled, and once with no crates (but both actually represent the same situation). Since the `Rustc::make_run` step actually requests a compile that is one stage below it, this actually made `build compiler --stage 0` work, which we don't want to have anymore.
3) Enforce a bootstrap-global invariant that all `build` commands are always on stage `>=1`. If you try to `build` anything on stage 0, it will print a warning and exit bootstrap. This follows the intuition from the new staging rules after the stage redesign; artifacts that are "stage 0" come outside of bootstrap, and we can't really build something for which we don't have source (although we can still test it, but that's for another PR).

Now the logic for build should be quite simple. For pretty much everything except for `Std`, you first use the stage0 compiler to build stage 1. Then you can build a stage 2 <something> using the previously built stage 1 (and then you can continue to stage 3 etc.). And that's it. The default build stage for everything is 1 (modulo download-ci-rustc, but that's a separate can of worms).

The snapshot test infra isn't super nice at the moment, as one of next steps I want to create some simple Builder pattern that will allow us to configure the bootstrap invocations in a more "forward-compatible" way (e.g. now it's not possible to modify the config passed to `configure_with_args`).

There are some things not yet fully resolved for build stage 0:
1) Cargo is still a `ModeRustc` tool, even though it doesn't really have to be, it is buildable with the stage0 compiler
2) bootstrap tools (`opt-dist`, `build-manifest` etc.) are still called stage0 tools, and in the bootstrap output it says something like "stage 0 rustc builds stage 0 opt-dist". Which is a bit weird, but functionally there's no difference, it's just a slightly inconsistent output. We still haven't decided if we should make these tools ignore staging altogether (which is IMO the right choice) or if we want to allow building stage 1/2/3/... bootstrap tools.

r? `@jieyouxu`

try-job: x86_64-rust-for-linux
2025-06-26 09:20:07 +00:00
Jakub Beránek 803415478c Do not build GCC in fast try builds 2025-06-25 16:05:28 +02:00
Guillaume Gomez 4f80053779 Update browser-ui-test version to 0.20.7 2025-06-25 15:29:40 +02:00
Guillaume Gomez 4780f21fe5 Move error code explanation removal check into tidy 2025-06-23 13:16:00 +02:00
Jakub Beránek 809f75058e Remove build --stage 0 from CI scripts 2025-06-23 10:11:01 +02:00
Martin Nordholts 45538e0beb ci: aarch64-gnu: Stop skipping panic_abort_doc_tests
The skipped test passes since nightly-2024-11-29. Let's stop skipping
it to increase the chance of detecing a regression.
2025-06-22 20:48:27 +02:00
bors 2fcf1776b9 Auto merge of #142245 - marcoieni:split-gnu-tools, r=Kobzol
ci: split x86_64-gnu-tools job

try-job: x86_64-gnu-tools
try-job: x86_64-gnu-miri
try-job: aarch64-gnu
2025-06-19 10:39:00 +00:00
Mateusz Mikuła d577b39c5a {aarch64,x86_64}-pc-windows-gnullvm: build host tools 2025-06-18 17:07:19 +02:00
Jakub Beránek 743c2a4c71 Fix -nopt CI jobs
They were using `--config` instead of `--set`, which overrides too much stuff.
2025-06-16 10:28:55 +02:00
bors 64033a4ee5 Auto merge of #142483 - workingjubilee:rollup-8qnhueh, r=workingjubilee
Rollup of 16 pull requests

Successful merges:

 - rust-lang/rust#140969 (Allow initializing logger with additional tracing Layer)
 - rust-lang/rust#141352 (builtin dyn impl no guide inference)
 - rust-lang/rust#142046 (add Vec::peek_mut)
 - rust-lang/rust#142273 (tests: Minicore `extern "gpu-kernel"` feature test)
 - rust-lang/rust#142302 (Rework how the disallowed qualifier in function type diagnostics are generated)
 - rust-lang/rust#142405 (Don't hardcode the intrinsic return types twice in the compiler)
 - rust-lang/rust#142434 ( Pre-install JS dependencies in tidy Dockerfile)
 - rust-lang/rust#142439 (doc: mention that intrinsics should not be called in user code)
 - rust-lang/rust#142441 (Delay replacing escaping bound vars in `FindParamInClause`)
 - rust-lang/rust#142449 (Require generic params for const generic params)
 - rust-lang/rust#142452 (Remove "intermittent" wording from `ReadDir`)
 - rust-lang/rust#142459 (Remove output helper bootstrap)
 - rust-lang/rust#142460 (cleanup search graph impl)
 - rust-lang/rust#142461 (compiletest: Clarify that `--no-capture` is needed with `--verbose`)
 - rust-lang/rust#142475 (Add platform support docs & maintainers for *-windows-msvc)
 - rust-lang/rust#142480 (tests: Convert two handwritten minicores to add-core-stubs)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-06-14 04:58:22 +00:00
bors 64c81fd105 Auto merge of #142235 - Kobzol:rustc-dist-alt-assertions, r=marcoieni
Build rustc with assertions in `dist-alt` jobs

Revival of https://github.com/rust-lang/rust/pull/131077, to check CI times now that we don't do PGO/BOLT anymore on Linux `-alt` builds.

r? `@ghost`

try-job: dist-x86_64-msvc-alt
try-job: dist-x86_64-linux-alt
2025-06-14 01:59:38 +00:00
Daniel Paoliello 295378729b DRAFT: Add an aarch64-msvc build running on ARM64 Windows 2025-06-13 15:27:35 -07:00
Jakub Beránek 9d642fe6f3 Pre-install eslint in mingw-check-tidy Dockerfile 2025-06-13 06:54:36 +02:00
bit-aloo d4d90ca3d2 put flag check at the end of command chain in mingw-check-2 2025-06-11 16:01:40 +05:30
bit-aloo 8c236ab51e add comment over ci change 2025-06-11 13:48:50 +05:30
bit-aloo 052a7c5618 add tracing flag in bootstrap check cmd in mingw-check-2 ci workflow 2025-06-11 13:43:42 +05:30
Jakub Beránek 607a567916 Use a faster runner for the x64 dist-alt job 2025-06-10 12:17:05 +02:00
Rémy Rakic 8f069e948a enable rustc debug assertions on -alt builds
llvm assertions are already enabled and debug assertions are also useful
2025-06-10 12:17:05 +02:00
MarcoIeni f30e9c943c ci: split x86_64-gnu-tools job 2025-06-10 10:30:06 +02:00
bors 00b526212b Auto merge of #142241 - Kobzol:disable-ci-rustc-on-ci, r=jieyouxu
Disable download-rustc on CI

Should resolve https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/aarch64-apple.20try.20job.20doesn.27t.20work/with/522659759.

r? `@jieyouxu`
2025-06-09 15:21:07 +00:00
bors 14863ea077 Auto merge of #142242 - matthiaskrgr:rollup-1sgx0ji, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - rust-lang/rust#129121 (Stabilize `tcp_quickack`)
 - rust-lang/rust#142192 (De-duplicate f16 & f128 doctest attributes)
 - rust-lang/rust#142193 (add tests for pattern binding drop order edge cases)
 - rust-lang/rust#142222 (Dont make `ObligationCtxt`s with diagnostics unnecessarily)
 - rust-lang/rust#142228 (rustc-dev-guide subtree update)
 - rust-lang/rust#142231 (Run `calculate_matrix` job on `master` to cache citool builds)
 - rust-lang/rust#142232 (add `Cargo.lock` to CI-rustc allowed list for non-CI env)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-06-09 12:21:14 +00:00
Jakub Beránek ee8853b21f Disable download-rustc on CI 2025-06-09 13:54:20 +02:00
Matthias Krüger a9ba52b4dc Rollup merge of #142218 - ojeda:rfl, r=Kobzol
CI: rfl: move job forward to Linux v6.16-rc1

Another hopefully routine upgrade to Linux v6.16-rc1, just released.

r? `@lqd` `@Kobzol`
try-job: x86_64-rust-for-linux
`@rustbot` label A-rust-for-linux
`@bors` try
2025-06-09 10:20:54 +02:00
Jakub Beránek cb9980133c Do not checkout GCC submodule for the tidy job 2025-06-09 08:17:56 +02:00
Jakub Beránek 54ed1b966f Run calculate_matrix job on the master branch
This allows us to reuse its cache on PR CI jobs.
2025-06-09 08:14:38 +02:00
Jakub Beránek 7614592107 Do not inherit environment variables in citool tests
So that we can make sure that they are reproducible locally.
2025-06-09 08:06:05 +02:00
Jubilee e91f985717 Rollup merge of #142210 - Kobzol:tidy-auto-builds, r=Mark-Simulacrum
Run `mingw-check-tidy` on auto builds

This has two advantages:
- It moves `auto` builds closer to being a superset of PR CI builds
- It allows us to reuse the Docker cache for the job in PR CI, thus speeding up the job in PR CI considerably

Discussed [here](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/PR.20ci.20seems.20much.20to.20slow).

r? ``@Mark-Simulacrum``
2025-06-08 17:17:58 -07:00