Faster CI - Our Journey To Halving Our Test Runtimes
One of my biggest challenges for the past few weeks was to get our tests to complete within 10 minutes.
That doesn’t sound so bad, does it? There’s just one tiny detail which would make this journey all the more exciting: Our code takes 25 minutes on average to complete on 25 parallel build servers and It takes about 4 hours if you run it in one.
I made a quick survey with our engineers and we lose roughly around 3 hours per day waiting for CI to finish.
The plan was to selectively run tests and have cucumbers run only on specific branches — epic, develop and master. This means that every time something gets merged to those branches, cucumbers will run after rspecs. And of course, all this will run in parallel on 25 build servers.
How our code tree looks like:
|- master |- develop |- epic/adding-a-thing-with-stuff |- feature/with-things |- feature/with-stuff |-
Continue reading →