Commit Graph

2454 Commits

Author SHA1 Message Date
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
Jakub Beránek 6f214c5bb3 Fix pluralization of tests 2025-03-13 13:14:14 +01:00
Jakub Beránek 36719a90f7 Update sccache to 0.10.0
This time, does it also for Windows and macOS.
2025-03-12 16:11:24 +01:00
Jakub Beránek d39a25837d Enable metrics and verbose tests in PR CI 2025-03-12 12:07:12 +01:00