Chat-Powered Continuous Delivery
Ben Lavender
Chat-Powered Continuous Delivery Ben Lavender Hi, Im @bhuga Im - - PowerPoint PPT Presentation
Chat-Powered Continuous Delivery Ben Lavender Hi, Im @bhuga Im @bhuga everywhere I work on workflow I work at GitHub This talk is: Selling you on GitHubs workflow Tools to build your own workflow GitHub Flow The Rules
Chat-Powered Continuous Delivery
Ben Lavender
Hi, I’m @bhuga
I work on workflow I work at GitHub I’m @bhuga everywhere
This talk is:
The Rules
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
Story Time
A Fix at GitHub
Names have been changed to protect the innocent
Step 1: Decide what to do Step 1: Decide what to do
Step 2: Do it
Step 2: Do it
GitHub Flow
is a version of
Continuous Deployment
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:
…boring
Continuous deployment is about developing and deploying in short, rapid increments.
Benefits for Developers:
Continuously deploy
How to get from where you are to continuous deployment
Story Time
Practices
Part 1
Make TINY changes
Help your application
Use
to make ships smaller and safer
Tools
Part 2
Chat
Chat. chat, chat, chat, chat, chat, chat. With a robot.
Shared Console
Exceptions
Graphs
Hackable toolchain
CD needs to be automated
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
VCS server (GitHub) Webhook Receiver
HTTP POST
WebHooks
VCS server (GitHub) Git push Webhook Receiver
Commit Info
VCS server (GitHub) Git push Webhook Receiver Issue Assigned
HTTP POST
Repository Starred Pull Request Opened Tests Failed
GitHub Events
GitHub Events
GitHub Events
Example: Announce Issue Creation
Announce Issue Creation
Developer GitHub Webhook Receiver
Create Issue Issue Event
Example: Build Every Commit
Build Every Commit
Developer GitHub CI Server
Commit Push Event Build Starts Update Status - Pending Update Status - Success Notifications
Example: Deployment
Deployment
Developer GitHub Deploy Server
Create Deployment Deployment Event Deploy Starts Deployment Status - Started Deployment Status - Finished Notifications
Example: Signoff
Signoff
Developer GitHub QA Team
Create pull request Notification Testing
Comment !
Notifications Issue Comment Webhook
Deployment Server
Close Deploy Comment
Buy instead of Build?
questions?