Continuous Integration and Deployment
Goals for CI
- Test everything continuously
- Automated Versioning
- Automated Notifications Dev, Team, PM
- Pre-Evaluate Pull Requests
- Visual Regression Testing
- Keep Dependencies up to date automatically
- Decreases Review Time in general
Think about your current project!
Goals for CD
- Automated Versioning
- Saving a lot of manual pain / labour
- Automated Release work / packaging
- Have staging and production system
- Allows for QA people to eval the staging system
- Put Release Version into app and VCS
Think about your current project!
CircleCI
Integration
- Add GH project to CI
- Push some code
- See if it works automagically
- Try to configure it in the UI
- or add circle.yml to project
- Create slack chat notification
CircleCI
Continuous Deployment
Easy: deploy on heroku
Intermediate: deploy via own script (e.g. uberspace) or via capistrano
Advanced: deploy to amazon ec2 or google apps
A word about versioning
Does your app expose an API?
Semantic Versioning
Else?
Simple build numbers
git describe --first-parent
or just auto-tag the commit that is #live-on-staging or #live-on-production
Is your app shipped/deployed manually?
Semantic Release
for node
https://github.com/semantic-release/semantic-release
 🌴
CI
By Moritz C. Türck
CI
- 730