When Should Your Pipeline Wait for a Human?
Picture this: your CI/CD pipeline just finished building and testing a new feature. All checks passed. The security scan found nothing suspicious. The staging environment is running the new version without any issues. Now the pipeline wants to push that same version to production. Should it just go ahead, or should it stop and wait for someone to say "yes"?
This question comes up in every team that builds a deployment pipeline with multiple environments. The answer is not a simple yes or no. It depends on how much you trust each environment, and how much risk you are willing to accept.
The Case for Letting the Pipeline Run
In early environments like development, most teams let the pipeline promote changes automatically. The build succeeds, tests pass, security scans are clean -- and the pipeline immediately deploys that version to the next environment. No one needs to click a button. This is called automatic promotion.
Automatic promotion is fast. Developers do not have to wait for someone to approve a deployment to staging every time they push a small fix. The pipeline can process dozens of changes per day without the team becoming a bottleneck. For early-stage environments where mistakes are cheap, this speed is valuable.
But automatic promotion is not right for every situation. The closer a change gets to production, the bigger the impact if something goes wrong. At some point, the team might want to pause, look at the test results from staging, and then decide whether the change should move forward.
When You Need a Human in the Loop
Manual promotion means the pipeline stops at a specific environment boundary and waits for someone to give permission to continue. This usually happens before production, or before an environment that real users access. The pipeline has already done all the preparation -- the new version is built, tested in staging, and security-checked -- but it will not go to production until someone approves it.
Teams typically decide to use manual promotion based on two factors: how critical the target environment is, and how large the change is.
For production environments, many teams use manual promotion as a final safety net. All automated gates have passed. Staging is running normally. But the team still wants someone to consciously check before the change reaches users. The person giving approval is usually a senior engineer, tech lead, or someone who understands the full impact of the change on the system.
For large changes -- database migrations, architecture changes, or major library updates -- manual promotion is often used even for staging environments. The team wants to make sure someone is paying attention before the change moves to the next stage.
The Common Pattern: Automatic Early, Manual Late
The most common approach is a combination: automatic promotion for early environments, manual promotion for the final one. The pipeline promotes itself from development to staging, then stops at the production gate waiting for approval. Or the pipeline promotes automatically to staging, the QA team checks manually, then gives approval to go to production.
The following flowchart illustrates this common pattern with a decision point for high-risk changes:
Some teams apply layered manual promotion. For example, moving to staging requires approval from a senior developer, while moving to production requires approval from both the tech lead and the QA team. The higher the environment, the more people need to agree.
What Manual Promotion Is Not
Manual promotion is not a replacement for automated gates. Automated gates still run in every environment. The pipeline still checks builds, tests, and security before it stops to wait for approval. Manual promotion adds a layer of human decision on top of automated checks. It does not replace them.
If your pipeline skips automated checks and relies entirely on manual approval, you are not doing manual promotion. You are doing manual deployment with extra steps. The value of manual promotion comes from having both: rigorous automated verification plus informed human judgment.
A Practical Checklist for Deciding
When you are setting up promotion rules for your pipeline, ask these questions:
- Is this environment used by real users? If yes, consider manual promotion.
- Can a mistake here affect data integrity or cause downtime? If yes, manual promotion is safer.
- Does the team have enough confidence in the automated tests for this environment? If not, add manual review.
- Is this a routine change (config update, minor feature) or a high-risk change (schema migration, library upgrade)? High-risk changes benefit from manual approval even in staging.
- How long does manual approval take? If it takes hours, the team might avoid deploying frequently. Balance safety with speed.
The Takeaway
Manual promotion is a deliberate pause, not a gatekeeper that slows everything down. Use it where the cost of a mistake is higher than the cost of waiting for a human to review. For early environments, let the pipeline run. For production and high-risk changes, let a person decide. The best pipelines combine automated rigor with human judgment at the right moments.