parallel_test gem experimentation #5628
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uses
parallel_tests
gem to run tests in parallel in CI. Parallelizes the tests across 4 CPU cores on each Github Action and across 3 runners. Additional runners did not seem useful, the setup time was starting to be as long as the test time.As a result the RSpec run time was cut down from around 7:30 to 3:10.
Changes in Test Output
Since the test output is now spread across multiple runners we want to have a way to combine those outputs back together into a single useful result. Long story short it will look something like this:
Success:
Failure:
Docker
I was unable to do a similar thing for docker. This issue with docker is the setup for docker compose takes almost 2 mins, which means even with many runners the tests will be spending nearly as much time setting up as testing.
Notes
Rspec is marked as a required check. This will need to be changed to Continuous Integration.