Do work on a branch Decide what's worth doing Automated tests Deploy to production Merge to master Manual tests auto-deploy feedback feedback feedback SCRUM or whatever
• Techniques such as automated testing, continuous integration and continuous deployment allow software to be developed to a high standard and easily packaged and deployed to test environments, resulting in the ability to rapidly, reliably and repeatedly push out enhancements and bug fixes to customers at low risk and with minimal manual overhead. Professor Wikipedia says:
Implement on new branch Run build Communicate Build status Respond to build issues Create pull request (request feedback) Communicate ready for feedback Review Communicate review Respond to review signoff branch deploy Test in production Fix issues Re-deploy branch Merge branch integrate master Deploy master ! integrate master
Implement on new branch Run build Communicate Build status Respond to build issues Create pull request (request feedback) Communicate ready for feedback Review Communicate review Respond to review signoff branch deploy Test in production Fix issues Re-deploy branch Merge branch integrate master Deploy master ! integrate master
Deployment Developer GitHub Deploy Server Create Deployment Deployment Event Deploy Starts Deployment Status - Started Deployment Status - Finished Notifications