-
Notifications
You must be signed in to change notification settings - Fork 6
Add CircleCI test-splitting workflow #11
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
base: main
Are you sure you want to change the base?
Conversation
| matrix: | ||
| parameters: | ||
| os: [linux, macos, windows] | ||
| release: ["R2024b", "R2025a"] |
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.
Instead of updating the releases frequently, does it make sense to have one fixed release and other as 'latest'?
tsharmaMW
left a comment
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.
Thank you for adding this workflow! It’s going to be very helpful for our users.
|
|
||
| # Run MATLAB tests, splitting them across parallel containers | ||
| - matlab/run-tests: | ||
| select-by-name: $(circleci tests glob "tests/**/*.m" | circleci tests split | awk -F'[\\\\/.]' '{print $(NF-1) "/*"}') |
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.
I believe this configuration currently splits the tests alphabetically by default. Would it make sense to add comments or examples showing how to split tests based on file size or previous timing data as well?
| - matlab/run-build: | ||
| tasks: mex buildPythonPackage | ||
|
|
||
| # Run MATLAB tests, splitting them across parallel containers |
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.
I'm curious - does CircleCI handle test splitting by distributing them across multiple separate machines, or are the tests simply divided among different cores on the same machine?
NOTE: CircleCI's free plan doesn't support parallelism for macOS cloud runners. Hence those users won't be able to use test-splitting with the current workflow's mac executor configuration. Decided not to add this info as a comment in our workflow since it will increase maintenance burden.