getId()])) { // Use the latest build information to determine current status: $latestBuild = $builds[$project->getId()][0]; switch ($latestBuild->getStatus()) { case 0: $cls = 'active'; $status = 'Pending'; break; case 1: $cls = 'warning'; $status = 'Running'; break; case 2: $cls = 'success'; $status = 'Success'; break; case 3: $cls = 'danger'; $status = 'Failed'; break; } // Use the last 5 builds to determine project health: $successes = 0; $failures = 0; foreach ($builds[$project->getId()] as $build) { switch ($build->getStatus()) { case 0: $statuses[] = 'pending'; break; case 1: $statuses[] = 'running'; break; case 2: $successes++; $statuses[] = 'ok'; $success = is_null($success) && !is_null($build->getFinished()) ? $build->getFinished()->format('Y-m-d H:i:s') : $success; break; case 3: $failures++; $statuses[] = 'failed'; $failure = is_null($failure) && !is_null($build->getFinished()) ? $build->getFinished()->format('Y-m-d H:i:s') : $failure; break; } } } if ($failures == 0) { $health = 'Good'; $subcls = 'success'; } elseif ($failures > $successes) { $health = 'Bad'; $subcls = 'danger'; } else { $health = 'Warning'; $subcls = 'warning'; } ?> getTitle()) ?> '; } ?> build now »