Skip to main contentThe entire Serial app is maintained in a mono repo with a CI/CD pipeline built on Github Actions. The pipeline consists of several workflows that handle different aspects of the development and deployment process:
-
Linting: A lint workflow runs on pull requests and pushes to the staging and main branches, checking the frontend and Zuplo code for style and potential errors.
-
Testing:
- Zuplo tests are run on pull requests and pushes to the staging and main branches.
- Supabase schema changes are validated by generating TypeScript types and checking for uncommitted changes.
-
Deployment:
- Supabase migrations are automatically deployed to the staging environment when changes are pushed to the staging branch, and to the production environment when changes are pushed to the main branch.
- Zuplo is deployed on both staging and main branches when changes are made to the Zuplo directory.
- Vercel deloployments are automatically triggered when any PR is merged to staging or main
-
Version Management: A version workflow runs on pushes to the staging and main branches, incrementing the version number and updating relevant files.
The CI/CD process follows this general flow:
- Changes are made in feature branches.
- Pull requests are created to merge into the staging branch.
- After passing all checks and reviews, changes are merged into staging for further testing.
- Once verified in staging, changes are then merged into the main branch for production deployment.