-
-
Notifications
You must be signed in to change notification settings - Fork 389
Please, CI: review the test matrix #2575
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I also have a bias towards Linux, but not to that degree 8). |
Since changes generally relate/address the newest changes in GHCs - it is important to check the testsuite for the newest GHCs on all platforms. The oldest one can be skipped on Linux, in favor of macOS, since Linux is generally more Linux enthusiasts & the platform is fastest at updating the packages & other things. This argumentation is minor, because a lot of test suite runs that are unlikely to fail from a set (for example Ubuntu Linux GHC 8.6.5, with that GHC 8.6.5 passed on other platform) - that check can be deferred to run on main branch after the merge. So minor checks would stop run constantly on PR push & run once after the merge to check minor possibilities "just in case". In case some of those minor checks is failing in the main branch - that workflow state does not block other PRs to be merged, that minor check only notifies maintainers/community on the test failure in particular GHC version. And in a majority of cases the maintainers can right away request from PR author that contributed the patch - to fix the build for that version of GHC, so the author sends the minor patch. The described process happens rarely, especially for example - for things that do not use low-level OS FFIs (for example plugins, if they are built on 1 platform - for them unlikely to fail on the other platforms). |
But this optimization has a value when the time can be saved, or project contribution flow exhausts the CI job runners. As we see - I kept the 2 of 3 longest jobs - Windows test jobs, so in that case, the CI loop would not really be shorter. That can be solved the other way: Before merge we frequently do a PR rebase, which triggers CI anew. We do not run the Windows test jobs at all during PR development. & rely on test reports from faster jobs from Linux & macOS. When CI triggers & the Otherwise in several hours someone from PR process notices the error return code from Windows tests & that gets addressed to pass PR into merge. |
That would be: So initially - we were running 7 As the result:
|
I did quite a bit on this, it's in a better state now |
A while ago noticed that test matrix, lets say "needs to be reviewed".
MPJ noticed that also #2503 (comment)
(macOS never runs the test suite)
The matrix overall can be reviewed to do fewer builds & tests but do that strategically.
The text was updated successfully, but these errors were encountered: