Updating the application version
This page describes the process of updating the backend or frontend applications to a new version. The processes for updating the backend Django application and the frontend Nuxt.js application are different, but the logic for updating both of these applications is contained in the same GitHub Action workflow.
Backend
Updating the backend application is a two-step process.
- Step 1: create a new task definition for the
pre-backend-update
task using the new backend application version (e.g.v1.2.3
), publish this new task definition and then run thepre-backend-update
task. This task applies migrations and runs thecollectstatic
command as well as any other Django management commands that are called in thepre-backend-update
command
WARNING
Database migrations included in the NEW version of code should be backward-compatible with the application code in the OLD version of code.
- Step 2: Create new task definitions for the backend ECS services (
gunicorn
webserver, celery worker and celery beat scheduler)
Frontend
Updating the frontend requires updating the frontend task definition with the new frontend application version (e.g. v1.2.3
) and then updating the service with the new task definition.
You can provide an version tag for the backend app, the frontend app or both. The GitHub Actions pipeline will first update the backend and then update the frontend.