slachiewicz opened a new issue, #2277:
URL: https://github.com/apache/maven-resolver/issues/2277

   ### Affected version
   
   master
   
   ### Description
   
   A push to master runs 18 verify jobs (3 operating systems × JDK 21, 25, 26 × 
Maven 3.10.0 and 4.0.0-rc-6) plus a setup job. Measured over the last four 
green runs 
([42378593090](https://github.com/apache/maven-resolver/actions/runs/42378593090),
 
[42374858172](https://github.com/apache/maven-resolver/actions/runs/42374858172),
 
[41920999295](https://github.com/apache/maven-resolver/actions/runs/41920999295),
 
[41918044931](https://github.com/apache/maven-resolver/actions/runs/41918044931)):
   
   | Measure | Value |
   |---|---|
   | Job-minutes per push | 99 to 110 |
   | Slowest job | 6 to 7 min |
   | Minutes by OS, latest run | Linux 30, Windows 38, macOS 34 |
   | Maven wall time, Linux JDK 21 job | 3 min 55 s |
   | Test time in that job | 184 s over 208 classes |
   | Push runs cancelled by a newer push, last 30 | 12 of 30 |
   
   The [ASF policy](https://infra.apache.org/github-actions-policy.html) 
requires at most 20 concurrent jobs per workflow and recommends 15; this 
workflow can reach 19, and `ff-run: false` means all of them start on every 
push.
   
   Where the time goes inside a job, from the Linux JDK 21 log:
   
   - The three transporter test classes (`ApacheTransporterTest`, 
`JdkTransporterTest`, `JettyTransporterTest`): 59 s. Each test starts its own 
Jetty server through the shared `HttpTransporterTest` base class.
   - `AllResolverDemosTest`: 17 s, resolving real artifacts from Central over 
the network on every job.
   - The three sync-context adapter tests (`FileLockAdapterTest`, 
`LocalSemaphoreAdapterTest`, `LocalReadWriteLockAdapterTest`): 27 s.
   - The 12 `*IT` classes: 49 s on Linux, 27 s on Windows and macOS, where the 
Redisson and MinIO ones are skipped without Docker. Hazelcast and IPC run 
in-process everywhere. Moving ITs to surefire would therefore save nothing; 
this issue does not propose it.
   
   ### Plan
   
   - [ ] Matrix trim with `matrix-exclude`: Linux keeps every cell, Windows 
drops JDK 25, macOS keeps only JDK 26. 12 jobs instead of 18, macOS from 6 to 2.
   - [ ] Decide whether to enable the shared workflow's fail-fast gate 
(`ff-run`), which runs one Linux job before the matrix: a red push then costs 
one job instead of 18, at the price of a longer wall time on green pushes.
   - [ ] `AllResolverDemosTest`: stop resolving from Central on every job (mock 
repository, or run it on one Linux cell only).
   - [ ] `HttpTransporterTest`: one Jetty server per class with a per-test 
repository directory instead of a server per test, if the tests allow it.
   - [ ] Sync-context adapter tests: find what the 9 s per class waits on.
   - [ ] Re-measure with the same query and post the before and after table 
here.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to