Commit graph

63 commits

Author SHA1 Message Date
Jakub Beránek
4b310338f8
Add a note about how to find tests that haven't been executed anywhere. 2025-04-17 16:35:39 +02:00
Jakub Beránek
a326afd5dd
Add buttons for expanding and collapsing all test suites 2025-04-17 16:30:23 +02:00
Jakub Beránek
c8a882b7b5
Add command to citool for generating a test dashboard 2025-04-17 16:18:24 +02:00
Jakub Beránek
111c15c48e
Extract function for normalizing path delimiters to utils 2025-04-17 16:18:01 +02:00
Jakub Beránek
d14df2652d
Make parent in download_auto_job_metrics optional 2025-04-17 16:18:01 +02:00
Jakub Beránek
3da0a19a29
Improve wording of post-merge report 2025-04-14 16:27:33 +02:00
oyvindln
77116881a8 update miniz_oxide to 0.8.8
0.8.7 can trigger a panic when debug assertions are enabled when used via flate2 in some cases
2025-04-10 00:30:53 +02:00
Matthias Krüger
704d301b43
Rollup merge of #139481 - Kobzol:post-merge-links, r=marcoieni
Add job summary links to post-merge report

This should make it much easier to investigate the individual job test/duration changes.

The GitHub API handling is a bit crude, but I didn't want to include octocrab, because it more than doubles the current number of dependencies of `citool`...

Can be tested with:
```bash
$ cargo run --manifest-path src/ci/citool/Cargo.toml post-merge-report bad13a970a 1e008dd5d8
```

r? ```@marcoieni```
2025-04-09 14:52:39 +02:00
Jakub Beránek
6ece1de0cd Add job summary links to post-merge report
This should make it much easier to investigate the individual job changes.
2025-04-07 17:42:44 +02:00
Jakub Beránek
1a4863421b Sort job duration changes by absolute duration
It was supposed to be like this from the start, but I forgot to apply the `abs` operation, as I got sidetracked with how to actually compare floats...
2025-04-07 12:52:09 +02: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
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
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
Jakub Beránek
c9d314773e Small review improvements 2025-03-17 21:48:39 +01: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
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
Jakub Beránek
6ef465ba12
Add clarification about doctests 2025-03-14 09:09:26 +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
3e67637c13
Rollup merge of #138307 - Kobzol:citool-alias, r=marcoieni
Allow specifying glob patterns for try jobs

This PR modifies the `try-job` lookup logic to allow glob patterns. So you can e.g. request all MSVC-related jobs with `try-job: *msvc*`.

Best reviewed commit by commit.

r? ``````@marcoieni``````

try-job: `*msvc*`
2025-03-11 13:30:54 +01:00
Jakub Beránek
16c08f6113 Ignore job duplicates 2025-03-10 14:07:46 +01:00
Jakub Beránek
dfef1a7b5a Handle backticks in try job patterns 2025-03-10 14:07:46 +01:00
Jakub Beránek
3326a9fd27 Allow using glob aliases for custom try jobs 2025-03-10 14:07:45 +01:00
Jakub Beránek
0412507c52 Move job handling to a separate module 2025-03-10 13:44:54 +01:00
Jakub Beránek
7ca7675b78 Make all keys explicit in citool
Just to avoid surprises, the amount of used keys is not large.
2025-03-10 13:10:53 +01:00
Jakub Beránek
1483cb67d9 Handle empty test suites in job summary report 2025-03-10 10:07:03 +01:00
Jakub Beránek
d5da6b71fa Add post-merge analysis CI workflow 2025-03-07 09:43:52 +01:00
Michael Goulet
b16f1ac5ff
Rollup merge of #138053 - Kobzol:more-try-jobs, r=marcoieni
Increase the max. custom try jobs requested to `20`

Requested [here](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/Increase.20try-job.20limit).

r? ````@marcoieni````
2025-03-06 15:40:02 -05:00
Jakub Beránek
3dbf3dc1e1
Increase the max. custom try jobs requested to 20 2025-03-05 12:27:10 +01:00