-
Notifications
You must be signed in to change notification settings - Fork 14
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
Add pytest-split and pytest-xdist #338
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This one largely looks good to me, with one comment on the actions (can leave for a separate PR). With the test splitting, it looks like it is setting up the environment for each python version + split combination. Would need to be tested, but could consider adding a new step after quality
and before testing
that sets up and caches the environment for each python version.
EDIT: On a second look, could also set up all of the python versions once before quality
is run - looks like py3.11 was the only one that didn't need to be set up again. Also makes sense since this was the version used in the quality
step.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
b577c9a
to
897a4ca
Compare
@kaitj I setup up your precaching and took the opportunity to simplify some of the workflow. I'm now using the venv caching provided natively by |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This lgtm! That is weird about the poetry / python order.
The reason is because |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me, with the (not new) note that it would eventually be nice to package the "Clone repo" through "Install dependencies" that get reused with minor differences into some reusable package
@kaitj, what repository are you building your reusable github actions in? |
I have been building them here just so that they are centralized, following an entity-value naming scheme, but open to changes. Also with release tags, so that downstream workflows can call a specific version. |
pytests-xdist
allows multi-core parallelism on tests.pytest-split
splits our tests into equally timed folds so that we can run everything across multiple workers. Hopefully the end result is a drasticincreasedecrease (5-10 fold) in our test timings