---
title: "How code reaches production"
slug: video-deployment-pipeline
section: Video Library
status: stable
description: "Here's how code reaches production at Alliance Abroad."
last-updated: 2026-10-07
---

# How code reaches production

Video: How code reaches production (1:39) — /docs/video-deployment-pipeline

- Answers: How does our deployment pipeline work from a feature branch to production
- Audience: engineering; program scope: all programs
- Visibility: staff; last verified 2026-11-05; owner platform-team

Chapters:
- 0:00 From branch to production — /docs/video-deployment-pipeline?t=0
- 0:09 One rule: main is production — /docs/video-deployment-pipeline?t=9
- 0:15 The promotion path — /docs/video-deployment-pipeline?t=15
- 0:28 Slots: pooled environments — /docs/video-deployment-pipeline?t=28
- 0:43 Gates: every merge is a pull request — /docs/video-deployment-pipeline?t=43
- 0:55 Production: only from main — /docs/video-deployment-pipeline?t=55
- 1:14 Emergencies: the hotfix path — /docs/video-deployment-pipeline?t=74
- 1:29 Remember — /docs/video-deployment-pipeline?t=89

## Transcript

Here's how code reaches production at Alliance Abroad. One branching model shared by all four portal repos. The rule is simple. Main is production. Every branch is cut from main and development is an environment, not a branch. Push a feature branch and it deploys to a development slot. Open a pull request into a release branch and that deploys to a QA slot. Merging the release into main is the only road to production. Slots are pre-built pools, three per environment, six for the back office's development, ownership lives in service labels, pushing renews your hold, expired slots get taken over and if every slot is held, the deploy fails. Rulesets with no bypass force every merge through a pull request, quality gate and branch rules green plus one approval. Branch rules decides which branch type may open a pull request into which. Production runs only from main. The back office builds an immutable image, runs migrations and deploys to the idle color blue or green. After a smoke test on a preview host, traffic flips to 100% and the previous color stays in place for instant rollback. The cloud run portals use a plain deploy. For emergencies, cut a hotfix from main and open a pull request straight to main. If nothing irreversible shipped, flip back to the previous color first. After the merge, a backport workflow opens a pull request against each open release. Remember, feature to a dev slot, release to a QA slot, main to production. The branch name picks the environment.
