Ways we can speed up CI #1383
Replies: 2 comments 3 replies
-
|
I am also not in favour of adding more complexity and would rather look for small wins that allow keeping the current setup. The install dependencies step should be already cached, maybe there's something not working 100% there? However, the tests take a long time to run, some tests are slow and can be optimized, some other aspects of tests could be improved to reduce the total time. |
Beta Was this translation helpful? Give feedback.
-
|
One thing I noticed in the CI is that We could consider splitting these into three separate test categories. Instead of the current 11 matrices (Python × Django versions), we'd have 33 matrices (Python × Django × test type), where the test types are sample app, Selenium, and regular tests. This would allow GitHub Actions to run them in parallel, which could significantly reduce the overall CI runtime. It might be worth exploring this approach. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Currently, the CI is quite slow, taking around 27 minutes on average across all matrix jobs.
(Thank you @pandafy for the image.)
Of that time, roughly 1.5 minutes are spent downloading dependencies, while nearly 16 minutes are spent actually running the tests. I have been experimenting with a potential solution: creating a pre-baked Docker image within the repository's packages and splitting the test suite into three groups (sample app, Selenium, and regular tests).
I tested this approach on my fork and reduced the average CI runtime across all matrix jobs from approximately 27 minutes to 16 minutes.
While the results are promising, one significant downside (as pointed out by @pandafy) is the maintenance burden of the Docker image. Keeping the image up to date and ensuring it remains compatible with our dependencies could become a substantial ongoing responsibility.
I'd like to open a discussion on this topic and explore whether there are better or more sustainable approaches to improving CI performance.
Beta Was this translation helpful? Give feedback.
All reactions