- TRIGGER
- On push to main
- TEST
- Setup Python virtual environment and install dependencies
- Execute django tests against an sqlite3 database
- Generate coverage report
- BUILD
- Login to dockerhub
- Prepare, build, and push image to dockerhub
- DEPLOY
- SSH into a remote EC2 instance
- Pull GitHub repo and checkout main branch
- Execute docker-compose file, restarting if required
- A host machine with docker, docker-compose, and git installed
- Requirements for docker container in Dockerfile and docker-compose.yaml
- Requirements for the Django app in requirements.txt