Skip to main content

Environments & Branches

This page documents Pivot's four environments: Development, Staging, UAT, and Production. Each environment has its own Firebase project, branch, and deployment URLs.

Environment Overview

EnvironmentFirebase ProjectBranchFirebase Alias
Developmentpivot-dev-59310developmentdefault
Staging (QA)pivot-not-production-projectmaindefault
UATpivot-uatuatuat
Productionpivot-incproductionproduction

URLs by Environment

Development

PurposeURL
Web Apphttps://pivot-dev-59310.web.app/signin
Stats Dashboardhttps://pivot-dev-59310.web.app/stats
Firebase Consolehttps://console.firebase.google.com/project/pivot-dev-59310

Staging

PurposeURL
Web Apphttps://pivot-not-production-project.web.app/signin
Stats Dashboardhttps://pivot-not-production-project.web.app/stats
Firebase Consolehttps://console.firebase.google.com/project/pivot-not-production-project

UAT

PurposeURL
Web Apphttps://pivot-uat.web.app/signin
Stats Dashboardhttps://pivot-uat.web.app/stats
Firebase Consolehttps://console.firebase.google.com/project/pivot-uat

Production

PurposeURL
Web Apphttps://the.pivotapp.ca/signin
Stats Dashboardhttps://the.pivotapp.ca/stats
Firebase Consolehttps://console.firebase.google.com/project/pivot-inc

Branch Strategy

development (default) → main (staging) → uat → production (manual deploy only)

Development Branch (development)

  • Default branch for all new work
  • Feature branches are created from development
  • Pull requests target development first
  • Deploys automatically to pivot-dev-59310

Main Branch (main)

  • Staging branch for QA and testing
  • Changes merged from development after initial testing
  • Deploys automatically to pivot-not-production-project
  • RC tags created automatically on merge (format: rc-YYYY-MM-DD[-revN])
  • Draft GitHub release created with changelog since last production release

UAT Branch (uat)

  • UAT branch for user acceptance testing
  • Changes merged from main after QA passes
  • Deploys automatically to pivot-uat
  • RC tags created automatically on merge

Production Branch (production)

  • Production branch - customer-facing
  • Changes merged from uat after UAT approval
  • Manual deploy only via GitHub Actions workflow_dispatch

Stats Dashboard

The Stats Dashboard is available in all environments:

Features

  • View data across different companies
  • Switch between environments/branches
  • Monitor key metrics and KPIs

For advanced analytics and KPI dashboards, see the pivot-kpi project which provides:

  • Stripe data integration via BigQuery
  • HubSpot sync capabilities
  • Detailed revenue and subscription metrics

CI/CD Pipeline

Each branch has automatic deployment via GitHub Actions:

BranchTriggerTarget ProjectActions
developmentPush/Mergepivot-dev-59310Build, Test, Deploy
mainPush/Mergepivot-not-production-projectBuild, Test, Deploy
uatPush/Mergepivot-uatBuild, Test, Deploy
productionworkflow_dispatch (manual)pivot-incBuild, Test, Deploy

Branch Protection

All protected branches require:

  • 1 code review before merging
  • CI checks to pass (frontend, build-and-test, enforce-coverage, Jira Ticket Required)
  • No force pushes allowed
  • Admins can bypass for emergencies
  • Hotfixes on main/uat/production trigger automatic backport PRs to development

Test Accounts (Dev & Staging)

EmailPassword
yannickfarmer7@gmail.com123456

Invitation code: SfYf8080


Troubleshooting

For common deployment issues and their solutions, see the Deployment Troubleshooting Guide in pivot-devops.

Common issues:

  • Cloud Tasks permission errors - Add roles/cloudtasks.admin to service accounts
  • 1st Gen to 2nd Gen migration - Delete old function before deploying
  • Wrong project targeted - Check firebase use and verify account