Staging Environment
The staging environment provides a production-like deployment for testing before releasing to production.
Details
| Property | Value |
|---|---|
| URL | staging.the-shift.dev |
| Branch | stage |
| Replicas | 1 |
| Namespace | shift-platform-staging |
| Cluster | GKE shift-platform in us-central1 |
| Storage | Convex (self-hosted, in-cluster) |
Deployment
Pushing to the stage branch triggers an automatic deployment via GitHub Actions:
git push origin stage
The CI pipeline will:
- Run lint and tests
- Build the Docker image
- Push to GCP Artifact Registry
- Apply the staging Kustomize overlay (
k8s/overlays/staging/) - Trigger a rollout in the
shift-platform-stagingnamespace
Staging vs Production
| Aspect | Staging | Production |
|---|---|---|
| URL | staging.the-shift.dev | app.the-shift.dev |
| Branch | stage | main |
| Replicas | 1 | 2 |
| Namespace | shift-platform-staging | shift-platform |
| Purpose | Pre-release validation | Live traffic |
Verifying
After a deploy, verify the staging environment:
curl https://staging.the-shift.dev/healthz
# {"status":"ok","service":"shift-gateway"}
You can also point the CLI at staging:
shift-cli config set gateway-url https://staging.the-shift.dev
shift-cli status
Kustomize Overlay
The staging overlay (k8s/overlays/staging/) patches the base manifests with:
- 1 replica (instead of 2)
NODE_ENV=staging- Staging-specific hostname in the Ingress
- Staging namespace (
shift-platform-staging)