This page describes our build and deploy workflow:
Pull Requests
When you open or push commits to a pull request, the app will be checked, built and deployed to:
E2E tests will be run against that URL.
Merges to main
When you merge into main
, the app will be checked, built and deployed to:
E2E tests will not be run against that URL.
NOTE: That means that when you merge, your change goes to "prod" automatically.
Exceptions
Some steps will not run on forks:
- Steps requiring secrets (mostly because dependabot can't access secrets).
- Playwright will not run on forks (which would not deploy to our domain).
Build and deploy flowchart
Below is a summary. .github/workflows/cd.yml
is always the canonical source for how the build and deploy works.
- Lint and unit test front and backends
- Deploy infrastructure
- Build the frontend
- Sync the frontend to S3
- Invalidate Cloudfront
- Install and run Playwright tests