You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The ci.yml workflow file for Continuous Integration (CI) serves the purpose of executing tests and identifying linting errors. Currently, this workflow typically consumes approximately 35 minutes to execute. An average of 30 minutes is used by the RSpec test suite. We can perform multiple optimizations on the workflow and rspec test suite to reduce this time and improve the overall development process.
Possible Workflow Optimizations:
1. Separate workflow steps depending on file changes
There is no need to run RSpec tests if only a javascript file or some .md file has changed. We can filter the steps based on file changes using dorny/paths-filter@v3 workflow action. I have opened a PR for this.
2. Running Steps Concurrently
While executing parallel steps is not supported by Github, a custom script can be written to run some steps parallel to reduce workflow time. Refer to this Discussion
Possible RSpec Optimizations:
These are time-consuming but can be slowly started
Separate Unit Tests and Integration Tests. Write logic to run UTs on every push, pull_request, and Integration Tests less often.
Use Mock instead of db call
try reducing time for the top slowest tests.
The text was updated successfully, but these errors were encountered:
What is happening?
The
ci.yml
workflow file for Continuous Integration (CI) serves the purpose of executing tests and identifying linting errors. Currently, this workflow typically consumes approximately 35 minutes to execute. An average of 30 minutes is used by the RSpec test suite. We can perform multiple optimizations on the workflow and rspec test suite to reduce this time and improve the overall development process.Possible Workflow Optimizations:
1. Separate workflow steps depending on file changes
There is no need to run RSpec tests if only a javascript file or some
.md
file has changed. We can filter the steps based on file changes using dorny/paths-filter@v3 workflow action. I have opened a PR for this.2. Running Steps Concurrently
While executing parallel steps is not supported by Github, a custom script can be written to run some steps parallel to reduce workflow time. Refer to this Discussion
Possible RSpec Optimizations:
These are time-consuming but can be slowly started
The text was updated successfully, but these errors were encountered: