Company
Date Published
Author
Aman Gupta
Word count
1837
Language
English
Hacker News points
None

Summary

GitHub employs a variant of the Flow pattern for code deployment where new code is deployed from a pull request branch and merged into the master branch only after it is confirmed in production. The master branch is deemed stable and production-ready, and any faulty code is rolled back by redeploying the latest master version. Deployments are conducted via Hubot commands in chat, providing company-wide visibility, and are logged in the GitHub API for timeline tracking. The deployment process includes features such as deploy queues, deploy guards, and deploy locks to manage and control the deployment flow, ensuring code passes continuous integration tests before deployment. Staging environments, including a unique "branch lab" for isolated testing, are used to replicate production conditions, allowing developers to safely test and refine their code. The workflow not only integrates deeply with chat and the GitHub API for transparency but also encourages frequent feedback and small iterations, minimizing merge conflicts and enhancing developer ownership and responsibility.