Artsy practices a sort of continuous delivery. We keep release cycles short and the process of reviewing, testing, and deploying our software as reliable, fast, and automated as possible. (This blog has touched on these practices multiple times.)
Usually, commits that have been reviewed and merged are immediately built and tested. Successfully built versions of the codebase are often automatically deployed to a staging environment. On an automated or frequent-but-manual basis, that version is deployed to a production environment. Thus, commits form a pipeline:
- From developers’ working branches
- To the master branch
- Through a hopefully-successful build
- To a staging environment
- To production
The number of apps and services we deploy has grown to dozens per team, so sometimes things fall through the cracks. We’ve been using Releasecop for the last few months to get gentle email reminders when an environment could use a deploy.