Skip to main content
The 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:
  1. 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.
  2. 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.
  3. 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
  4. 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:
  1. Changes are made in feature branches.
  2. Pull requests are created to merge into the staging branch.
  3. After passing all checks and reviews, changes are merged into staging for further testing.
  4. Once verified in staging, changes are then merged into the main branch for production deployment.