Parallelize the windows CI to enable us to run all tests all the time#8868
Parallelize the windows CI to enable us to run all tests all the time#8868TravisEz13 merged 9 commits intoPowerShell:masterfrom
Conversation
03df89d to
03806c4
Compare
By projects? |
|
@iSazonov I don't want to design the solution right now. By project, would be a possibility, but optimally, we should try to find a way that makes sense and divides the time close to evenly. I think our first goal would be to do a similar refactoring of the non-windows CI system. |
|
@TravisEz13 Why we do not select Build in a separate job to use the result for the rest jobs? Also perhaps we could use strategy-matrix to unify process. |
|
@iSazonov Review the change. We do the build as a separate job and use the results (artifacts) for the rest of the jobs. Matrix is less flexible that designing the pipeline yourself. We would not be able to do the build is a separate job and use the artifacts for the rest of the jobs. Using templates gets you all the advantages of a matrix (not having to restate the job multiple times, only declare how many times you want to run it), with the added ability to depend on previous jobs. |
| $SkipFailing | ||
| ) | ||
| $env:CoreOutput = Split-Path -Parent (Get-PSOutput -Options (Get-PSOptions)) | ||
| if(!(Test-Path "$env:CoreOutput\pwsh.exe")) |
There was a problem hiding this comment.
Can we change this to work on Linux and macOS
There was a problem hiding this comment.
In the PR xUnit tests run only on Windows. Previously we run the tests on Unix-s too.
There was a problem hiding this comment.
This PR doesn't change Linux or macOS. I'll deal with this issue when refactoring macOS and Linux
|
@TravisEz13 Thanks for clarify! I see now how this works. For reference Setting up parallel jobs, Slicing the test suite |
PR Summary
Split Windows CI into the following Jobs
PR Context
Before this test:
After this change, it always runs all tests and takes ~20 minutes.
Job
Unelevated everything else testsis the long poll, taking ~4 minutes longer than the next shortest job. We should be able to get this back down to ~15 if we split that test job somehow.PR Checklist
.h,.cpp,.cs,.ps1and.psm1files have the correct copyright headerWIP:or[ WIP ]to the beginning of the title (theWIPbot will keep its status check atPendingwhile the prefix is present) and remove the prefix when the PR is ready.[feature]to your commit messages if the change is significant or affects feature tests