-
Notifications
You must be signed in to change notification settings - Fork 463
🚁 Create a staging environment deployment for pull requests #1070
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
🚁 Create a staging environment deployment for pull requests #1070
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR implements per-PR staging environments using Fly.io's PR preview feature, replacing the previous single shared staging environment to enable parallel testing and eliminate staging bottlenecks.
Key Changes:
- Automated per-PR staging deployments with isolated resources (database, secrets, storage)
- Removed manual staging app setup from initialization process
- Migrated staging secrets from Fly.io to GitHub environment secrets
Reviewed changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/deploy.yml |
Added deploy-staging job for per-PR environments, removed dev branch deployments, automated resource provisioning |
remix.init/index.mjs |
Removed staging app creation and setup prompts from initialization script |
prisma/seed.staging.sql |
New staging database seed file with test users and notes data |
other/litefs.yml |
Added automatic seeding of staging databases on first deployment |
docs/deployment.md |
Updated deployment instructions removing staging app setup, added GitHub CLI requirement |
docs/secrets.md |
Updated to use GitHub environment secrets for staging instead of Fly secrets |
docs/email.md |
Updated secret management commands for new workflow |
docs/monitoring.md |
Updated Sentry DSN configuration for staging environments |
docs/database.md |
Added documentation for staging database seeding |
docs/decisions/047-pr-staging-environments.md |
Decision record documenting the rationale and impact of the change |
prisma/migrations/migration_lock.toml |
Formatting change (no functional impact) |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
…kasper/staging-app-per-pr
This reverts commit 73d4343.
…ance deploy command
Closes #1067
Summary
Implements per-PR staging environments using Fly.io's PR preview feature, resolving the staging bottleneck issue discussed in #1067.
Problem
Previously, the Epic Stack used a single shared staging environment (
app-name-staging) which created several issues:Solution
Each pull request now gets its own isolated staging environment with:
app-name-pr-123)Changes
CI/CD Pipeline (
.github/workflows/deploy.yml):deploy-stagingjob usingsuperfly/[email protected]main(removeddevbranch)Database Seeding (
prisma/seed.staging.sql,other/litefs.yml):Documentation Updates:
docs/deployment.md: Removed staging app setup, added GitHub CLI instructionsdocs/secrets.md: Updated for GitHub environment secretsdocs/email.md,docs/monitoring.md: Updated secret commands for new workflowdocs/database.md: Added staging seed documentationBenefits
Test Plan
I tested this in my own deployed fork of the epic stack.
Checklist
Screenshots