Hacker News new | ask | show | jobs
by adamcharnock 1876 days ago
About 5-10 minutes from push to deploy. Python/Django monorepo. 1-2 devs for several years kinda project size.

Build and test steps take about equal time. We build from a common docker image which has most of the time consuming work already done.

It can take longer if the Python deps have changed and therefore the ‘poetry install’ step cannot be pulled from the cache.

Also, we deploy multiple individual Django projects, rather than one huge monolithic project. That probably gives some speed up. It means that changes to common code can trigger 5-15 pipelines, but they all take a similar amount of time.

30-45 minutes seems like a really long time to me. Maybe you have a lot of slow tests, but I’d also looking at the build process too. If you’re doing docker images you may find you can extract a lot of the time consuming work to a common base image. You can also get plugins that help docker pull already-built layers from a cache.

If it is the tests then you could always try running tests in parallel. One worker per CPU or some such.

FWIW - I find that these long feedback loops can really kill productivity and morale. 10 mins for a deploy is about my limit.