Commit graph

1448 commits

Author SHA1 Message Date
Matthias Krüger
b2284b9fd1
Rollup merge of #107700 - jyn514:tools-builder, r=Mark-Simulacrum
Run the tools builder on all PRs

Previously, it would only run on changes to subtrees, submodules, or select directories. That made it so that changes to the compiler that broke tools would only be detected on a full bors merge. This makes it so the tools builder runs by default, making it easier to catch breaking changes to clippy (which was the most affected).

r? ``@Mark-Simulacrum`` cc ``@pietroalbini`` ``@flip1995`` ``@m-ou-se``
2023-02-07 17:57:16 +01:00
Matthias Krüger
64db7fb115
Rollup merge of #107596 - Kobzol:stage-build-timer, r=Mark-Simulacrum
Add nicer output to PGO build timer

This PR modifies the timer used in the PGO build script to contain nicer, hierarchical output of the individual build steps. It's not trivial to test locally, so I'll fire up a dist build right away.

r? ``@Mark-Simulacrum``
2023-02-06 21:16:40 +01:00
Joshua Nelson
9dfec5d35b Run the tools builder on all PRs
Previously, it would only run on changes to subtrees, submodules, or select directories.
That made it so that changes to the compiler that broke tools would only be detected on a full bors merge.
This makes it so the tools builder runs by default, making it easier to catch breaking changes to clippy (which was the most effected).
2023-02-05 14:29:49 -06:00
bors
7c46fb2111 Auto merge of #107625 - matthiaskrgr:rollup-xr9oldy, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #106575 (Suggest `move` in nested closure when appropriate)
 - #106805 (Suggest `{var:?}` when finding `{?:var}` in inline format strings)
 - #107500 (Add tests to assert current behavior of large future sizes)
 - #107598 (Fix benchmarks in library/core with black_box)
 - #107602 (Parse and recover from type ascription in patterns)
 - #107608 (Use triple rather than arch for fuchsia test-runner)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2023-02-03 08:07:47 +00:00
bors
5d32458343 Auto merge of #107543 - ehuss:protocol-sparse, r=jyn514
Enable Cargo's sparse protocol in CI

This enables the sparse protocol in CI in order to exercise and dogfood it. This is intended test the production server in a real-world situation.

Closes #107342
2023-02-03 04:49:50 +00:00
Joseph Ryan
eb5e9713b5 Use triple rather than arch for fuchsia test runner 2023-02-02 13:29:03 -08:00
Jakub Beránek
7f9cfce18e
Make timer hierarchical 2023-02-02 15:02:18 +01:00
Michael Goulet
e63ec2e140 Revert "switch to the macos-12-xl builder"
This reverts commit fcbae989ae.
2023-02-01 21:31:05 +00:00
Jakub Beránek
7bd8fbbd28
Print total duration in human time 2023-02-01 17:50:38 +01:00
Jakub Beránek
4bce075149
Dynamically align values in staged build timer table to avoid overflow 2023-02-01 17:50:11 +01:00
Eric Huss
5e90940a4b Enable Cargo's sparse protocol in CI 2023-01-31 18:13:57 -08:00
bors
f55b0022db Auto merge of #103019 - Kobzol:ci-multistage-python, r=Mark-Simulacrum
Port pgo.sh to Python

This PR ports the `pgo.sh` multi stage build file from bash to Python, to make it easier to add new functionality and gather statistics. Main changes:

1) `pgo.sh` rewritten from Bash to Python. Jump from ~200 Bash LOC to ~650 Python LOC. Bash is, unsurprisingly, more concise for running scripts and binaries.
2) Better logging. Each separate stage is now clearly separated in logs, and the logs can be quickly grepped to find out which stage has completed or failed, and how long it took.
3) Better statistics. At the end of the run, there is now a table that shows the duration of the individual stages, along with a percentual ratio of the total workflow run:

```
2023-01-15T18:13:49.9896916Z stage-build INFO: Timer results
2023-01-15T18:13:49.9902185Z ---------------------------------------------------------
2023-01-15T18:13:49.9902605Z Build rustc (LLVM PGO):                 1815.67s (21.47%)
2023-01-15T18:13:49.9902949Z Gather profiles (LLVM PGO):              418.73s ( 4.95%)
2023-01-15T18:13:49.9903269Z Build rustc (rustc PGO):                 584.46s ( 6.91%)
2023-01-15T18:13:49.9903835Z Gather profiles (rustc PGO):             806.32s ( 9.53%)
2023-01-15T18:13:49.9904154Z Build rustc (LLVM BOLT):                1662.92s (19.66%)
2023-01-15T18:13:49.9904464Z Gather profiles (LLVM BOLT):             715.18s ( 8.46%)
2023-01-15T18:13:49.9914463Z Final build:                            2454.00s (29.02%)
2023-01-15T18:13:49.9914798Z Total duration:                         8457.27s
2023-01-15T18:13:49.9915305Z ---------------------------------------------------------
```

A sample run can be seen [here](https://github.com/rust-lang/rust/actions/runs/3923980164/jobs/6707932029).

I tried to keep the code compatible with Python 3.6 and don't use dependencies, which required me to reimplement some small pieces of functionality (like formatting bytes). I suppose that it shouldn't be so hard to upgrade to a newer Python or install dependencies in the CI container, but I'd like to avoid it if it won't be needed.

The code is in a single file `stage-build.py`, so it's a bit cluttered. I can also separate it into multiple files, although having it in a single file has some benefits. The code could definitely be nicer, but I'm a bit wary of introducing a lot of abstraction and similar stuff, as long as the code is stuffed into a single file.

Currently, the Python pipeline should faithfully mirror the bash pipeline one by one. After this PR, I'd like to try to optimize it, e.g. by caching the LLVM builds on S3.

r? `@Mark-Simulacrum`
2023-01-29 22:14:18 +00:00
bors
e972bc8083 Auto merge of #107451 - matthiaskrgr:rollup-m4ucfu8, r=matthiaskrgr
Rollup of 11 pull requests

Successful merges:

 - #96763 (Fix maintainer validation message)
 - #106540 (Insert whitespace to avoid ident concatenation in suggestion)
 - #106763 (print why a test was ignored if its the only test specified)
 - #106769 (libtest: Print why a test was ignored if it's the only test specified.)
 - #106798 (Implement `signum` with `Ord`)
 - #107006 (Output tree representation on thir-tree)
 - #107078 (Update wording of invalid_doc_attributes docs.)
 - #107169 (Pass `--locked` to the x test tidy call)
 - #107431 (docs: remove colon from time header)
 - #107432 (rustdoc: remove unused class `has-srclink`)
 - #107448 (When stamp doesn't exist, should say Error, and print path to stamp file)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2023-01-29 19:29:49 +00:00
Matthias Krüger
309fb1923f
Rollup merge of #96763 - Abdur-rahmaanJ:patch-1, r=Mark-Simulacrum
Fix maintainer validation message

State clearly why maintainer verification is not activating, ruling out the user thinking they misconfigured something.
2023-01-29 20:03:34 +01:00
Mateusz Mikuła
f6ea2ea551 Upgrade mingw-w64 on CI 2023-01-29 13:01:06 +01:00
Jakub Beránek
5b77cb459f
Port pgo.sh to Python 2023-01-24 21:51:01 +01:00
bors
ad48c10981 Auto merge of #107044 - cuviper:more-llvm-ci, r=Mark-Simulacrum
ci: add runners for vanilla LLVM 14 and 15

As discussed in [zulip #t-infra][1] -- r? Mark-Simulacrum

[1]: https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/testing.20multiple.20llvm.20versions
2023-01-23 04:36:34 +00:00
Abdur-Rahmaan Janhangeer
2fe58b9a6a fix maintainer validation message
fix remove token check for maintainers
fix: rm validate_maintainers function
2023-01-22 14:53:17 +04:00
Matthias Krüger
d779a592dd
Rollup merge of #107127 - uweigand:s390x-sanitizer, r=Mark-Simulacrum
Enable sanitizers for s390x-linux

Include sanitizers supported by LLVM on s390x (asan, lsan, msan, tsan) in the target definition, as well as in the compiletest supported list.

Build sanitizer runtime for the target.  Enable sanitizers in the CI.
2023-01-22 11:43:07 +01:00
bors
1c394e1b9a Auto merge of #106948 - cuviper:ci-mingw-check, r=nikic
ci: upgrade mingw-check to ubuntu:22.04
2023-01-21 21:42:21 +00:00
Ulrich Weigand
492d928e44 Enable sanitizers for s390x-linux
Include sanitizers supported by LLVM on s390x (asan, lsan, msan, tsan)
in the target definition, as well as in the compiletest supported list.

Build sanitizer runtime for the target.  Enable sanitizers in the CI.
2023-01-20 18:34:24 +01:00
bors
333ee6c466 Auto merge of #105716 - chriswailes:ndk-update-redux, r=pietroalbini
Ndk update redux

Blocked on https://github.com/rust-lang/blog.rust-lang.org/pull/1055
2023-01-18 19:49:02 +00:00
Josh Stone
318d77ddfd ci: add runners for vanilla LLVM 14 and 15 2023-01-18 11:14:40 -08:00
Josh Stone
4cc71843da ci: upgrade mingw-check to ubuntu:22.04 2023-01-16 11:46:48 -08:00
Matthias Krüger
bc4049d861
Rollup merge of #106644 - alexcrichton:update-wasi-toolchain, r=cuviper
Update the wasi-libc used for the wasm32-wasi target

This commit updates the wasi-libc revision used to build with the wasm32-wasi target. This notably pulls in WebAssembly/wasi-libc#377 which is needed to fix a use case I've been working on recently. This should be a relatively small update hopefully and is not expected to have any user impact.
2023-01-14 13:04:25 +01:00
Yuki Okushi
233169ff0a
Rollup merge of #106670 - albertlarsan68:check-docs-in-pr-ci, r=Mark-Simulacrum
Check compiler docs in PR CI

Fixes #106624
2023-01-14 12:04:33 +09:00
Alex Crichton
b047aec122 Update the wasi-libc used for the wasm32-wasi target
This commit updates the wasi-libc revision used to build with the
wasm32-wasi target. This notably pulls in WebAssembly/wasi-libc#377
which is needed to fix a use case I've been working on recently. This
should be a relatively small update hopefully and is not expected to
have any user impact.
2023-01-13 13:21:18 -08:00
bors
4887cb18dc Auto merge of #106711 - albertlarsan68:use-ci-llvm-when-lld, r=jyn514
Use CI LLVM in `test-various` builder

It was disabled because it needs `lld`, but since #104748 was merged it is no longer needed.

This will speed this test, since it no longer needs to build LLVM.
2023-01-12 04:58:03 +00:00
Albert Larsan
40ba0e84d5
Change src/test to tests in source files, fix tidy and tests 2023-01-11 09:32:13 +00:00
Albert Larsan
bd5a0f956e
Use CI LLVM in test-various builder
It was disabled because it needs lld, but since 104748 was merged it is
no longer needed.
2023-01-11 08:38:16 +00:00
Pietro Albini
04acc1d9dc
disable fast submodule checkout due to spurious ci failures 2023-01-10 16:33:16 +01:00
Albert Larsan
1300c8d272
Check compiler docs in PR CI 2023-01-10 08:43:54 +00:00
Guillaume Gomez
f67aa04114 Update browser-ui-test version 2023-01-06 15:55:36 +01:00
David Koloski
f6ef039775 Add vendor to Fuchsia's target triple
Historically, Rust's Fuchsia targets have been labeled x86_64-fuchsia
and aarch64-fuchsia. However, they should technically contain vendor
information. This CL changes Fuchsia's target triples to include the
"unknown" vendor since Clang now does normalization and handles all
triple spellings.

This was previously attempted in #90510, which was closed due to
inactivity.
2023-01-05 09:34:22 -05:00
Joshua Nelson
beefcf8854 Cleanup mingw-tidy docker job
- Avoid `/checkout/src/ci/run.sh: line 187: [: =: unary operator expected`: https://github.com/rust-lang/rust/actions/runs/3809902408/jobs/6481611301#step:26:1701
- Avoid running `x check` in the tidy test, to get faster feedback. It's
  already run on the normal `mingw-check` job.
2023-01-01 21:44:18 +00:00
Eric Huss
59b80f598f Run cargo test on tidy itself. 2022-12-31 12:34:23 -08:00
Joshua Nelson
90a10cae4b Revert "Auto merge of #105058 - Nilstrieb:no-merge-commits-for-you-only-bors-is-allowed-to-do-that, r=jyn514"
This reverts commit 4839886f0a, reversing
changes made to ce85c98575.
2022-12-31 01:55:24 +00:00
Nilstrieb
ad9806b73c Checkout master branch in CI 2022-12-30 11:23:01 +01:00
KaDiWa
9bf4036d17
readme: update section on how to run x.py 2022-12-26 00:33:32 +01:00
Deadbeef
4566db3359 Run tidy in its own job in PR CI
This duplicates mingw-check into two jobs where one job
runs `tidy` only while the other job does not. The tidy
job will not cancel other jobs on failure.
2022-12-22 17:50:56 +00:00
bors
1072337890 Auto merge of #105845 - lqd:revert-thinlto-revert, r=Mark-Simulacrum
Re-enable ThinLTO for rustc on `x86_64-apple-darwin`

ThinLTO was disabled on x64 mac in https://github.com/rust-lang/rust/pull/105646 because of the https://github.com/rust-lang/rust/issues/105637 regression.

It was later discovered that the issue was present on other targets as well, as the mac revert was already landing. The linux/win reverts, however, did not land before the root cause was identified.

https://github.com/rust-lang/rust/pull/105800 fixed the underlying issue in `-Zdylib-lto` handling, and the x64 msvc and linux targets are now fixed, ICEs are using the correct `rustc_driver` panic hook.

This PR re-enables ThinLTO on mac for improved perf now that the issue should be fixed everywhere.
2022-12-19 06:25:22 +00:00
Matthias Krüger
be48d21938
Rollup merge of #105863 - GuillaumeGomez:update-browser-ui-test, r=notriddle
Update browser-ui-test version to reduce GUI tests flakyness

Part of https://github.com/rust-lang/rust/issues/93784.

r? `@notriddle`
2022-12-18 23:03:06 +01:00
Guillaume Gomez
0c029ab07c Update browser-ui-test version to reduce GUI tests flakyness 2022-12-18 18:14:12 +01:00
bors
37efc81072 Auto merge of #105714 - jyn514:tidy-first, r=Mark-Simulacrum
Run `x test tidy` sooner in mingw-check

It takes less time to run than the other tests and is more likely to fail. `expand-yaml-anchors` is still run first to make sure the CI files are internally consistent.

Note that changing to `--stage 0` doesn't actually do anything since bootstrap tools are always built with the bootstrap compiler, this just makes it less confusing.

cc https://github.com/rust-lang/rust/pull/105058/commits/83bab41b5b2d4752d187dd91b05c88ac74cf3783
2022-12-18 16:03:46 +00:00
Rémy Rakic
ae68e1725d Re-enable ThinLTO for rustc on x86_64-apple-darwin dist builds
This reverts commit ddb6fe2e1d.
2022-12-17 21:55:08 +00:00
Joshua Nelson
b8a84c2c53 Make RUN_CHECK_WITH_PARALLEL_QUERIES the last thing to run
This takes a long time and rarely fails. It also interferes with `retry make prepare`, the retry is unhelpful since `make prepare` turns into a no-op
2022-12-17 13:26:26 -06:00
Chris Denton
3d852f60aa
Test documentation of hidden items in std 2022-12-16 20:21:43 +00:00
Chris Wailes
0fb426ace4 Update CI to use Android NDK r25b
This commit updates the CI definitions to use the most recent Android
LTS NDK release: r25b.  Changes since the last NDK used by Rust negate
the need to generate "standalone toolchains" and newer NDKs can be used
in-place.

See https://developer.android.com/ndk/guides/other_build_systems#overview
2022-12-14 11:33:08 -08:00
Joshua Nelson
c99f1b7413 Run x test tidy sooner in mingw-check
It takes less time to run than the other tests and is more likely to fail.
`expand-yaml-anchors` is still run first to make sure the CI files are internally consistent.
2022-12-14 12:46:47 -06:00
Matthias Krüger
00852d12db
Rollup merge of #105663 - andrewpollack:patch-1, r=tmandry
Adjust log line in `fuchsia-test-runner.py`

* Adjusting log line in `fuchsia-test-runner.py` to refer to self

r? ``@tmandry``
2022-12-14 10:58:47 +01:00