Commit graph

2457 commits

Author SHA1 Message Date
Stuart Cook
ab80f575c4
Rollup merge of #139386 - onur-ozkan:configurable-compiletest-libtest, r=jieyouxu,kobzol
make it possible to use stage0 libtest on compiletest

With https://github.com/rust-lang/rust/pull/119899, building the library tree will require a stage 1 compiler. This is because `compiletest` is defined as a `ToolStd` (since https://github.com/rust-lang/rust/pull/68019) in order to use the in-tree library. As a result, https://github.com/rust-lang/rust/pull/119899 makes certain development workflows more difficult as changes on the compiler tree will now require recompiling `compiletest` each time.

This PR allows switching `ToolStd` to `ToolBootstrap` with a simple boolean option in `bootstrap.toml` to allow `compiletest` to use the stage 0 `libtest` instead.

The changes under `src/ci` are clearly intended to make sure that `compiletest` doesn't break during future bootstrap beta bumps.
2025-04-08 20:55:08 +10:00
onur-ozkan
c8306650ba enable in-tree std on some runners
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-04-07 10:08:08 +03:00
Josh Stone
12167d7064 Update the minimum external LLVM to 19 2025-04-05 11:44:38 -07:00
Noratrieb
6a1f57d095 Demote i686-pc-windows-gnu to Tier 2
In accordance with RFC 3771.

I also added a stub doc page for the target and renamed the
windows-gnullvm page for consistency.
2025-04-02 21:40:58 +02:00
Jakub Beránek
27cca0a161 Add CI metadata to bootstrap metrics
This will allow us to provide links to CI workflows, jobs and summaries in the post-merge analysis report.
2025-03-27 17:03:08 +01:00
Jakub Beránek
a37cef9ee6 Add a note about interpreting job duration changes 2025-03-27 11:38:54 +01:00
Jakub Beránek
4a43675353 Add cache for job metrics 2025-03-27 11:38:54 +01:00
Jakub Beránek
a3bafca14a Add job duration changes stats in post-merge analysis 2025-03-27 11:38:49 +01:00
Stuart Cook
2ae5d34ea0
Rollup merge of #138930 - Kobzol:analyze-bootstrap-diffs, r=marcoieni
Add bootstrap step diff to CI job analysis

This PR adds another analysis to the job analysis report in GitHub summary. It compares (diffs) bootstrap steps executed by the parent run and by the current commit. This will help us figure out if the bootstrap invocation did something different than before, and also how did the duration of individual steps and bootstrap invocations change.

Can be tested on the https://github.com/rust-lang/rust/pull/119899 PR like this:
```bash
$ curl https://ci-artifacts.rust-lang.org/rustc-builds/3d3394eb64ee2f99ad1a2b849b376220fd38263e/metrics-mingw-check.json > metrics.json
$ cargo run --manifest-path src/ci/citool/Cargo.toml postprocess-metrics metrics.json --job-name mingw-check --parent 961351c76c > out.md
```

r? `@marcoie`
2025-03-26 19:40:30 +11:00
Jakub Beránek
813783e711 Add diff of bootstrap steps 2025-03-25 16:14:08 +01:00
Jakub Beránek
e9ddf54d16 Group test diffs by stage in post-merge analysis 2025-03-22 14:00:30 +01:00
Jakub Beránek
e288faa4b0 Disable CI mode when checking default bootstrap profiles 2025-03-21 12:18:51 +01:00
bors
a7fc463dd8 Auto merge of #138693 - matthiaskrgr:rollup-ejq8mwp, r=matthiaskrgr
Rollup of 10 pull requests

Successful merges:

 - #136177 (clarify BufRead::{fill_buf, consume} docs)
 - #138654 (Remove the regex dependency from coretests)
 - #138655 (rustc-dev-guide sync)
 - #138656 (Remove double nesting in post-merge workflow)
 - #138658 (CI: mirror alpine and centos images to ghcr)
 - #138659 (coverage: Don't store a body span in `FunctionCoverageInfo`)
 - #138661 (Revert: Add *_value methods to proc_macro lib)
 - #138670 (Remove existing AFIDT implementation)
 - #138674 (Various codegen_llvm cleanups)
 - #138684 (use then in docs for `fuse` to enhance readability)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-03-19 12:39:34 +00:00
bors
1370611c0a Auto merge of #138690 - jieyouxu:temp-disable-fuchsia, r=Kobzol
Temporarily disable Fuchsia test job to unblock queue

See <https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/fuchsia.20failure/with/506637259> for efforts to fix the test job.

This PR temporarily disables the Fuchsia test job to unblock the queue, so that neither the Fuchsia maintainers nor T-infra maintainers should feel pressured to fix the job ASAP.

Please feel free to re-enable once the test job is fixed.
FYI `@erickt` since you or other Fuchsia maintainers will need to revert this change to merge Fuchsia test job fixes in the future.

r? infra-ci
2025-03-19 06:16:45 +00:00
Jieyou Xu
351e0f7a31
Temporarily disable Fuchsia test job to unblock queue
See
<https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/fuchsia.20failure/with/506637259>
for efforts to fix the test job.
2025-03-19 13:43:34 +08:00
Jakub Beránek
9dac4797be
Remove double nesting in post-merge workflow 2025-03-18 10:24:25 +01:00
Matthias Krüger
c19ce9df8d
Rollup merge of #138533 - Kobzol:try-job-auto-tests, r=marcoieni
Only use `DIST_TRY_BUILD` for try jobs that were not selected explicitly

Some CI jobs (x64 Linux, ARM64 Linux and x64 MSVC) use the `opt-dist` tool to build an optimized toolchain using PGO and BOLT. When performing a default try build for x64 Linux, in most cases we want to run perf. on that artifact. To reduce the latency of this common use-case, `opt-dist` skips building several components not needed for perf., and it also skips running post-optimization tests, when it detects that the job is executed as a try job (not a merge/auto job).

This is useful, but it also means that if you *want* to run the tests, you had to go to `jobs.yml` and manually comment this environment variable, create a WIP commit, do a try build, and then remove the WIP commit, which is annoying (in the similar way that modifying what gets run in try builds was annoying before we had the `try-job` annotations).

I thought that we could introduce some additional PR description marker like `try-job-run-tests`, but it's hard to discover that such things exist.

Instead, I think that there's a much simpler heuristic for determining whether `DIST_TRY_BUILD` should be used (that I implemented in this PR):
- If you do just ``@bors` try`, without any custom try jobs selected, `DIST_TRY_BUILD` will be activated, to finish the build as fast as possible.
- If you specify any custom try jobs, you are most likely doing experiments and you want to see if tests pass and everything builds as it should. The `DIST_TRY_BUILD` variable will thus *not* be set in this case.

In this way, if you want to run dist tests, you can just add the `try-job: dist-x86_64-linux` line to the PR description, and you don't need to create any WIP commits.

r? `@marcoieni`
2025-03-17 22:49:06 +01:00
Matthias Krüger
5786233b81
Rollup merge of #138531 - Kobzol:test-diff-try-build, r=marcoieni
Store test diffs in job summaries and improve analysis formatting

This PR stores the test diffs that we already have in the post-merge workflow also into individual job summaries. This makes it easier to compare test (and later also other) diffs per job, which will be especially useful for try jobs, so that we can actually see the test diffs *before* we merge a given PR.

As a drive-by, I also made a bunch of cleanups in `citool` and in the formatting of the summary and post-merge analyses. These changes are split into self-contained commits.

The analysis can be tested locally with the following command:
```bash
$ curl https://ci-artifacts.rust-lang.org/rustc-builds/<current-sha>/metrics-<job-name>.json > metrics.json
$ cargo run --manifest-path src/ci/citool/Cargo.toml postprocess-metrics metrics.json --job-name <job-name> --parent <parent-sha> > out.md
```
For example, for [this PR](https://github.com/rust-lang/rust/pull/138523):
```bash
$ curl https://ci-artifacts.rust-lang.org/rustc-builds/282865097d138c7f0f7a7566db5b761312dd145c/metrics-aarch64-gnu.json > metrics.json
$ cargo run --manifest-path src/ci/citool/Cargo.toml postprocess-metrics metrics.json --job-name aarch64-gnu --parent d9e5539a39 > out.md
```

Best reviewed commit by commit.

r? `@marcoieni`

try-job: aarch64-gnu
try-job: dist-x86_64-linux
2025-03-17 22:49:05 +01:00
Jakub Beránek
c9d314773e Small review improvements 2025-03-17 21:48:39 +01:00
bit-aloo
99aa4ed85f
replace config.toml to bootstrap.toml in src/ci, src/etc/* and tests/run-make 2025-03-17 12:56:49 +05:30
bors
227690a258 Auto merge of #137011 - LuuuXXX:promote-ohos-with-host-tools, r=Amanieu
Promote ohos targets to tier2 with host tools.

### What does this PR try to resolve?

Try to promote the following [[Tier 2 without Host Tools](https://doc.rust-lang.org/rustc/platform-support.html#tier-2-without-host-tools)](https://doc.rust-lang.org/rustc/platform-support.html#tier-2-without-host-tools) targets to [[Tier 2 with Host Tools](https://doc.rust-lang.org/rustc/platform-support.html#tier-2-with-host-tools)](https://doc.rust-lang.org/rustc/platform-support.html#tier-2-with-host-tools):

- `aarch64-unknown-linux-ohos`
- `armv7-unknown-linux-ohos`
- `x86_64-unknown-linux-ohos`

### More Information?

see MCP: https://github.com/rust-lang/compiler-team/issues/811

### Blockage to be solved?

- [x] Submit an MCP
- [x] Submit code of promote ohos targets
- [x] Resolve related dependencies (`measureme`)

The modified code of the measureme has been merged (see https://github.com/rust-lang/measureme/pull/238). [done]
The new version will was released (https://github.com/rust-lang/measureme/pull/240). [done]
2025-03-16 18:42:18 +00:00
bors
9f274ba399 Auto merge of #137665 - Kobzol:update-sccache, r=marcoieni
Update sccache to 0.10.0

This time, does it also for Windows and macOS. This unifies the sccache version across all OSes that we use.

r? `@ghost`

try-job: dist-aarch64-apple
try-job: dist-x86_64-apple
try-job: dist-x86_64-msvc
try-job: dist-x86_64-msvc-alt
try-job: dist-i686-msvc
try-job: dist-aarch64-msvc
try-job: dist-x86_64-linux
try-job: dist-x86_64-netbsd
2025-03-15 20:13:16 +00:00
Jakub Beránek
7c792e29d7 Only use DIST_TRY_BUILD for try jobs that were not selected explicitly 2025-03-15 13:24:29 +01:00
Jakub Beránek
4801dba9af Reformat code 2025-03-15 11:34:55 +01:00
Jakub Beránek
e845318111 Do not error out on missing parent metrics 2025-03-15 11:16:12 +01:00
Jakub Beránek
b4cccf0158 Put test differences into a <details> section and add better explanation of the post merge report 2025-03-15 11:16:12 +01:00
Jakub Beránek
232be8614d Add a helper function for outputting details 2025-03-15 11:16:12 +01:00
Jakub Beránek
634a11ef48 Add bootstrap stage to test names 2025-03-15 11:16:11 +01:00
Jakub Beránek
30d57576b9 Print test diffs into GitHub summary
So that we can also observe them for try builds, before merging a PR.
2025-03-15 11:16:11 +01:00
Jakub Beránek
6c24c9c088 Use first-level heading for test differences header 2025-03-15 11:16:11 +01:00
Jakub Beránek
413fd52ea9 Print number of found test diffs 2025-03-15 11:16:11 +01:00
Jakub Beránek
e757deab23 Refactor metrics and analysis in citool to distinguish them better 2025-03-15 11:16:09 +01:00
Jakub Beránek
09d44a48b2 Print metrics postprocessing to stdout
This allows the code to be simplified a little bit.
2025-03-15 09:24:43 +01:00
León Orell Valerian Liehr
9b8a6771bc
Rollup merge of #138507 - Kobzol:netbsd-mirror, r=Mark-Simulacrum
Mirror NetBSD sources

Should avoid issues with NetBSD servers.

r? ``@Mark-Simulacrum``

try-job: `*netbsd*`
2025-03-15 00:18:26 +01:00
León Orell Valerian Liehr
756b17975f
Rollup merge of #138454 - Kobzol:post-merge-workflow-fixes, r=jieyouxu
Improve post-merge workflow

Contains various fixes for the post-merge workflow implemented in https://github.com/rust-lang/rust/pull/138013, which were suggested on Zulip. This PR changes the grouping of test diffs and ignores doctests, as they are too noisy.

I'll post an example output (before/after this PR) in comments below.

r? ```@jieyouxu```
2025-03-15 00:18:23 +01:00
León Orell Valerian Liehr
fc7ac81979
Rollup merge of #138451 - Kobzol:gcc-ci-build-gcc, r=GuillaumeGomez
Build GCC on CI with GCC, not Clang

It seems that GCC built with Clang misbehaves. I have tested that cg_gcc tests [pass](https://github.com/rust-lang/rust/actions/runs/13842365913/job/38732750617?pr=138451) on CI with a downloaded GCC that was built in this way.

Prerequisite for https://github.com/rust-lang/rust/pull/138395.

r? ```@ghost```
2025-03-15 00:18:23 +01:00
Jakub Beránek
9e3805d6d3 Mirror NetBSD sources 2025-03-14 17:44:07 +01:00
León Orell Valerian Liehr
c5e3857492
Rollup merge of #138487 - Kobzol:fix-doc-url-docker, r=marcoieni
Pass `CI_JOB_DOC_URL` to Docker

Fix-up for https://github.com/rust-lang/rust/pull/136911. I always forget to pass new environment variables to Docker images.. 🤦‍♂️

r? `@marcoieni`

try-job: x86_64-fuchsia
2025-03-14 17:26:39 +01:00
Jakub Beránek
2aa68ac429
Remove RUN_CHECK_WITH_PARALLEL_QUERIES
It is useless after the removal of the parallel compiler configuration.
2025-03-14 11:12:03 +01:00
Jakub Beránek
7afad54758
Pass CI_JOB_DOC_URL to Docker 2025-03-14 11:10:38 +01:00
Jakub Beránek
6ef465ba12
Add clarification about doctests 2025-03-14 09:09:26 +01:00
Jacob Pratt
637f059aef
Rollup merge of #138396 - Kobzol:ci-metrics, r=marcoieni
Enable metrics and verbose tests in PR CI

When debugging CI, I relatively often need to examine what tests are executed on PR CI, and what bootstrap steps does it execute. However, we currently disable both verbose tests and bootstrap metrics on PR CI for some reason.

I'm not actually sure why though, as the PR that (probably) introduced this behavior (https://github.com/rust-lang/rust/pull/51367) didn't explain why.

CC `@oli-obk`
2025-03-14 01:37:32 -04:00
Jakub Beránek
3fc7ca0fee Use GCC for building GCC 2025-03-13 21:29:46 +01:00
Jakub Beránek
611764417b
Output job doc URL to allow Rust Log Analyzer to access it 2025-03-13 14:48:18 +01:00
Jakub Beránek
aab643f4a7
Fill doc_url for Rust for Linux and Fuchsia jobs 2025-03-13 14:46:46 +01:00
Jakub Beránek
3cf1a68280
Add doc_url attribute to CI jobs 2025-03-13 14:46:35 +01:00
Jakub Beránek
f981a0a0cd
Do not print doctest diffs in the report
When they are moved around in code, their name changes, which produces too noisy diffs.
2025-03-13 14:31:31 +01:00
Jakub Beránek
d5d633d246
Group diffs by tests, rather than job groups 2025-03-13 14:31:31 +01:00
Jakub Beránek
7ed913be31
Add cache for downloading job metrics
To make it easier to experiment locally.
2025-03-13 14:31:30 +01:00
Jakub Beránek
2192d5c4e2
Print the compared SHAs 2025-03-13 14:31:30 +01:00