Bridj Case study · MobilityTech
Cloud Run Platform & Shared CI/CD for Bridj
The challenge
Bridj had no existing deployment or infrastructure setup when the engagement began. Everything — containerisation, CI/CD pipelines, cloud configuration, and even local development environments — had to be designed and built from scratch. The absence of any standardised deployment process meant every developer's setup was inconsistent, and the path from code commit to production was entirely manual.
What we did
We started by solving the local development problem first. A dedicated dev-machine repository was created with Docker Compose configuration, letting any developer clone one repository and bring up the complete local environment in a single step. From there we built Dockerfiles for each application, validated them locally, and designed a shared GitHub Actions workflow architecture serving all five application repositories from a single reusable definition. Each workflow handled Docker image build, tagging, and push to the container registry — then triggered a central deployer repository. The deployer repository was the core innovation: on receiving a trigger, it automatically identified the updated image tag, updated the deployment configuration, and orchestrated the sequential deployment of all nine Cloud Run applications. If any application failed during the rollout, an automated rollback mechanism reverted all applications to the last stable state — ensuring no partial deployments reached production. All infrastructure was provisioned via Terraform on GCP, with Hetzner Cloud used for supporting workloads. Environment variables and secrets were managed securely through GitHub Secrets across all build and deployment stages.
Results
5 repos
unified under one shared CI/CD workflow
A single reusable GitHub Actions workflow definition served all five application repositories, eliminating duplicate pipeline code and configuration drift.
9 apps
deployed sequentially with auto-rollback
The deployer repository orchestrated full multi-application rollouts — any failure triggered automatic rollback of all applications to the previous stable state.
Zero
manual deployment steps
From code commit to production, the entire flow — build, tag, promote, deploy — was fully automated with no human intervention required.
Single command
full local dev environment
The Docker Compose dev-machine repository let developers spin up the complete application stack locally without any manual configuration steps.
From the engineer who led it
"The shared workflow across five repositories was the most interesting engineering challenge — you have to design the workflow as a platform, not just a script. Getting the deployer repository to automatically pick up new image tags and orchestrate sequential deployment of nine Cloud Run applications, with full rollback if any step fails, required very careful sequencing. It looks simple on the surface, but the dependency chain took real thought to get right."
Himanshu Ahir
DevOps Engineer · CloudWizz