Build Auto-Triage Upgrades
A list of potential improvements for the build auto-triage script.
Anyone is welcome to add to these changes, or to action them.
Starting list:
- To sort the list of build failures to put the build failures at the top and the test failures at the bottom.
- Will also include separating out the test failures into their own category in regards to the summary integers at the top of the created issue.
- To replace build links for test failures with test job links.
- Note: Will also need to keep scanning the output in case a test failure is detected. That way, we can catch all of the test failure links.
- To find a way to ignore build pipelines that were started by a user re-starting a timer build.
- Fixed here.
Arm 32bit is no longer a build platform for JDK21 and up. Need to fix the platforms list accordingly.
- Fixed here.
Added several improvements here, including:
- Ability to find tag-driven pipelines.
- Ability to identify the two new types of pipeline for JDK8 (Arm32 and Alpine, which have dedicated pipelines).
- Ability to filter out user-launched pipelines.
- Ability to filter out pipelines that are still in progress.
- Ability to filter out pipelines with no builds.
- Ability to correctly identify failed builds vs unstable builds.
- Removal of arm32 Linux as an expected platform for jdk21+.
- Ability to launch the build triage workflow manually via the website (useful for testing new changes).
- Prevent the Build workflow from triggering on changes to the build autotriage script.
- FYI: The Build workflow runs and monitors a large set of build pipelines for some types of pull request in the temurin-build repo. It takes a long time to run, and provides no benefit as the build autotriage script is not a part of the build pipeline.
- Plus lots of useful comments and restructuring.
We should add the ability to concatenate build pipelines in the event of reruns.
Example:
Pipeline 1 has platforms A and B Pipeline 2 has platforms B and C
Build triage should process the platforms from Pipeline 1, plus platform C from pipeline 2.
We'll need to include logic to cover these scenarios:
- A user has rerun some tag-driven builds using default parameters (triage these).
- A user reran the "1" builds, but only on some platforms (triage these).
- A user reran the "2" builds, but used bespoke options like -Xint, or their own source repo fork (do not triage these).
Some of the above items have been resolved, and the others (while useful) don't appear necessary.
After review, here is an MVP list for completion of this issue:
- [x] Display test and build fails separately.
- [x] Print list of trss grid views per jdk version.
- [x] Solve bug noted here, where we are not correctly identifying the latest timer/tag-driven pipeline.
PR ready for reviews. Link.