Jenkins is good old CI where you can set up everything from simple cron job to complicated delivery pipeline. At the company where I’m working at the moment we ourselfes built an pretty-damn good Continuous Delivery pipeline which includes:
As I ordered above, tests takes from 30s (unit tests) to around 30 minutes (UAT). When taking in consideration all delivery pipeline action (code deployment, various procedures to be executed and so on) it becomes 45 minutes for a single release. So the math is 8hrs / 45min = up to 10 releases /day. That’s the physical limit. Well we are A-class team (A-for-Agile) so we need more release power.
Docker in Production
Yes! We are running docker in production. Your beloved CodeStory is running in fully Dockerised environment!
Branch name. Same as Local as Origin
Often working on fast-moving projects I find myself creating branches from branches and more. I found one really nice trick to shave couple of seconds and keyboard click. By default when you create new GIT branch locally and try to push that freshly baked branch to your origin, in my entire career I did not have to rename branches, so using the same branch name mades perfect sense. If you are in line with me, there is that magic line below:
git config --global push.default current
git config --global pull.default current