Green¶
Green describes a build, a test run, or a pipeline stage that has passed: every assertion succeeded, nothing failed, nothing errored. The term comes from the traffic-light convention used by CI dashboards and test runners, where green means go and red means stop.
Green is best known from the red, green, refactor cycle of test-driven development: write a failing test in red, write the minimum code to make it pass to green, then improve the code without changing its behaviour, with refactor. A codebase is only safe to refactor once it is green, since the tests are what confirm that behaviour was preserved.
At the pipeline level, a green build means every stage, tests, static analysis, linting, deployment checks, succeeded, so the commit is considered safe to merge or deploy. A red build blocks merges in most CI setups until it turns green again. Keeping the main branch green is a common team discipline: nobody should merge on top of a known-broken build, since that hides new failures behind an old one.
Green is distinct from greenfield, a fresh project with no legacy constraints, and from a green thread, a lightweight, runtime-scheduled thread. All three share the same word but describe unrelated concepts.
<?php
// PHPUnit: red before green
final class CartTest extends \PHPUnit\Framework\TestCase
{
public function testEmptyCartTotalIsZero(): void
{
$cart = new Cart();
// Red: Cart::total() does not exist yet.
// Green: implement Cart::total() to return 0 for an empty cart.
$this->assertSame(0, $cart->total());
}
}
// Running the suite: exit code 0 means green.
// vendor/bin/phpunit --colors=always
// $ echo $?
// 0
?>
See also Red, green, refactor and Test-Driven Development (TDD) in PHP.
Related : Test-Driven Development, Continuous Integration, Regression, Greenfield, Green Thread, Testable