A single-command production deployment script that orchestrates 15+ steps across Google Cloud, Firebase, and Azure — with validation gates, cache-busting, and automated post-deployment verification.
Deploying this application required 15+ manual steps across 3 cloud platforms — each step a potential failure point that could leave the system half-deployed.
Wrong Env Variables
Incorrect API URLs baked into the frontend build, pointing production to dev endpoints.
Firebase Rewrite Bug
Misconfigured rewrites cause JS files to return HTML — the dreaded "Unexpected token <" error.
Container Build Failures
Docker builds fail mid-deploy, leaving the API on an old version while the frontend expects the new one.
No Post-Deploy Checks
Deployment "succeeds" but endpoints are broken — nobody knows until users report issues.
Result: Broken half-deployments, stale builds, production outages, and hours of manual verification.
Architecture 3 Services, 3 Clouds
The platform runs across Google Cloud, Firebase, and Azure — each service deployed to its optimal cloud provider.
⚙️
.NET 8 REST API
C# backend containerised and deployed to Google Cloud Run (Australia)
🌐
Next.js Frontend
React/TypeScript SPA exported to static files on Firebase Hosting
⚡
Azure Functions
Shared serverless functions on Azure App Service (Australia)
↓ deployed via single command ↓
🐳
Google Cloud Run
Container hosting, auto-scaling, Australia SE region
🔥
Firebase Hosting
CDN-backed static hosting with custom rewrites
☁️
Azure App Service
Serverless compute, shared across environments
Pipeline Automated Deployment
The script executes each phase with validation gates — if any step fails, it stops immediately with a clear error.
Verification Automated Smoke Tests
Post-deployment, the script runs comprehensive verification — hitting real endpoints and checking content types.
Results Architecture & Impact
One command replaces 15+ manual steps with fail-fast validation at every stage.
.NET 8 + Docker
Optimised container builds for Cloud Run
Next.js Static Export
Cache-busted builds with env injection
Firebase Config Validation
Prevents rewrite bugs before deploy
Smoke Tests
Automated endpoint + content-type verification
Fail-Fast Gates
Every step checks exit codes, stops on failure
Multi-Cloud
Google Cloud + Firebase + Azure in one pipeline
15 → 1
Manual steps replaced by single command
3
Cloud platforms orchestrated in parallel
0
Half-deployed or broken production states
6x
Faster page loading with optimised builds
One Command, Three Clouds, Zero Broken Deploys
Fail-fast validation gates, automated smoke tests, and cache-busted builds — production confidence in a single script.