<p>Shorter definition:</p>
<p>Push on Green: After each commit, if all tests pass, the new code is pushed to production.</p>

CC BY-SA 4.0
2021-06-25T16:10:24.780Z
2021-06-25T16:10:24.780Z
TomOnTime
<p>I Googled "Push on Green" and the first link was:<br>
<a href="https://www.usenix.org/conference/lisa14/conference-program/presentation/klein" rel="noreferrer">https://www.usenix.org/conference/lisa14/conference-program/presentation/klein</a></p>

<p>This was representative of almost the entire first page.  It looks like this term originated in Google's SRE group and has been taken up by the industry at large.  </p>

<p>You are correct- "push on green" means that deployments are automatically executed when all tests pass.  This could be considered synonymous with "Continuous Deployment."  The accepted method for automating deployments to environments is to automate testing.  </p>

<p>If your automated testing is rigorous enough, you can deploy any code for which the tests pass.  In very mature enterprises (the DevOps unicorns of all shapes and sizes) this can lead to Continuous Deployment all the way to the production environment.  </p>

<p>My personal experience is that reaching this level of automated testing is a challenge in any enterprise.  I am currently in the process of pursuing this level of maturity in my current position.  Our first major milestone will be "push on green" deployments to <em>any</em> environment beyond "Integrated Development" (our "lowest" environment.)  </p>

<p>This challenge is both technical and cultural.  As an IT organization, we owe it to our business stakeholders to prove that our testing <em>is</em> in fact rigorous enough to serve as the sole gateway to a deployment.  Once we have done that to our own satisfaction, we have to convince those stakeholders to let us try Continuous Deployment to the next environment (for us, this is QA.)</p>

CC BY-SA 3.0
2017-08-11T18:47:00.570Z
There's also a _;login:_ magazine article covering the same topics than the presentation:  https://www.usenix.org/system/files/login/articles/login_1410_05_klein.pdf
Ricardo Stuven
CC BY-SA 3.0
2017-03-19T15:02:54.857Z
2017-03-19T15:08:01.423Z
2017-03-19T15:08:01.423Z
Dave Swersky
<p>Within Google and other DevOps organisations, they talk about "Push on Green" which I am lead to believe is the practice of continuous delivery based upon a successful run of automated tests, and presumably deployments to pre-live environments.</p>

<p>What exactly does "Push on Green" and what are the implications of applying it?</p>

CC BY-SA 3.0
2017-03-19T14:56:59.647Z
Do you have a link to a specific reference, for context?  It sounds like your description is accurate but a citation would be helpful to confirm.
Dave Swersky
<continuous-integration><terminology><continuous-delivery>
What is "Push on Green"?
Richard Slater
# What is "Push on Green"?

(Asked by: username_0 on 2017-03-19)

Within Google and other DevOps organisations, they talk about "Push on Green" which I am lead to believe is the practice of continuous delivery based upon a successful run of automated tests, and presumably deployments to pre-live environments.

What exactly does "Push on Green" and what are the implications of applying it?

**Tags:** continuous-integration, terminology, continuous-delivery

> **Comments:**
> **username_1**: Do you have a link to a specific reference, for context?  It sounds like your description is accurate but a citation would be helpful to confirm.  

---

## 2 answers

### Answer by username_1 on 2017-03-19. Score: 10 | Accepted answer

I Googled "Push on Green" and the first link was:  
<https://www.usenix.org/conference/lisa14/conference-program/presentation/klein>

This was representative of almost the entire first page. It looks like this term originated in Google's SRE group and has been taken up by the industry at large.

You are correct- "push on green" means that deployments are automatically executed when all tests pass. This could be considered synonymous with "Continuous Deployment." The accepted method for automating deployments to environments is to automate testing.

If your automated testing is rigorous enough, you can deploy any code for which the tests pass. In very mature enterprises (the DevOps unicorns of all shapes and sizes) this can lead to Continuous Deployment all the way to the production environment.

My personal experience is that reaching this level of automated testing is a challenge in any enterprise. I am currently in the process of pursuing this level of maturity in my current position. Our first major milestone will be "push on green" deployments to *any* environment beyond "Integrated Development" (our "lowest" environment.)

This challenge is both technical and cultural. As an IT organization, we owe it to our business stakeholders to prove that our testing *is* in fact rigorous enough to serve as the sole gateway to a deployment. Once we have done that to our own satisfaction, we have to convince those stakeholders to let us try Continuous Deployment to the next environment (for us, this is QA.)

> **Comments:**
> **username_3**: There's also a _;login:_ magazine article covering the same topics than the presentation:  https://www.usenix.org/system/files/login/articles/login_1410_05_klein.pdf  

---

### Answer by username_2 on 2021-06-25. Score: 0

Shorter definition:

Push on Green: After each commit, if all tests pass, the new code is pushed to production.


---

