- [ ] Implement CI/CD pipelines
- [ ] Gitlab CI
- [ ] Use Runners
- [ ] Github
- [ ] Use TravisCI or others
- [ ] Necessary stages
- [ ] Build Code
- [ ] Run Tests
- [ ] Code quality
- [ ] Unit testing
- [ ] End-to-end testing (front-end tests)
- [ ] Deploy
- [ ] On develop branch deploy to staging server
- [ ] On master branch deploy to production server
- [ ] Deployment Options
- [ ] AWS (recommend using beanstalk service)
- [ ] Heroku also a good choice
- [ ] Nanobox (hard to add to gitlab ci, perfect on github)
- [ ] Protect master and develop branchs, only allow merge requests which need to be peer reviwed before aproving the request
- [ ] Use linters on IDEs
- [ ] Use a diferente database for development and production environments
- [ ] USE envionment variables fo sensitive data, keep this on a config file
- [ ] Use docker images for better compatibility and easy configuration