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('M j Y g:ia') : $success; break; case 3: $failures++; $statuses[] = 'failed'; $failure = is_null($failure) && !is_null($build->getFinished()) ? $build->getFinished()->format('M j Y g:ia') : $failure; break; } } } if ($failures == 0) { $health = 'Good'; $subcls = 'green'; } elseif ($successes == 0) { $health = 'Bad'; $subcls = 'red'; } else { $health = 'Warning'; $subcls = 'yellow'; } $buildCount = count($builds[$project->getId()]); $lastSuccess = $successful[$project->getId()]; $lastFailure = $failed[$project->getId()]; $message = 'No builds yet!'; $shortMessage = 'No builds yet!'; if ($buildCount > 0) { if ($failures > 0) { $shortMessage = $failures . ' / ' . $buildCount . ' failed.'; $message = $failures . ' out of the last ' . $buildCount . ' builds failed.'; if (!is_null($lastSuccess) && !is_null($lastSuccess->getFinished())) { $message .= ' The last successful build was ' . $lastSuccess->getFinished()->format('M j Y') . '.'; } else { $message .= ' This project has never built successfully.'; } } else { $shortMessage = $buildCount . ' / ' . $buildCount . ' passed.'; $message = 'All of the last ' . $buildCount . ' builds passed.'; if (!is_null($lastFailure) && !is_null($lastFailure->getFinished())) { $message .= ' The last failed build was ' . $lastFailure->getFinished()->format('M j Y') . '.'; } else { $message .= ' This project has never failed to build.'; } } } ?> 10): ?>