"; // var_dump($builds); // echo ""; $maxbuildcount = 5; $projects = array(); $prevBuild = null; $health = false; foreach($builds as $build): if ($build->getStatus() < 2) { continue; } if ( is_null($prevBuild) || $build->getProjectId() !== $prevBuild->getProjectId() ) { $health = false; $projects[$build->getProjectId()]['count'] = 0; $projects[$build->getProjectId()]['health'] = 0; $projects[$build->getProjectId()]['successes'] = 0; $projects[$build->getProjectId()]['failures'] = 0; $projects[$build->getProjectId()]['lastbuildstatus'] = (int)$build->getStatus(); } if ( !is_null($prevBuild) && $projects[$build->getProjectId()]['count'] >= $maxbuildcount && $build->getProjectId() === $prevBuild->getProjectId() ) { $projects[$build->getProjectId()]['count']++; continue; } switch ((int)$build->getStatus()) { case 2: $projects[$build->getProjectId()]['health']++; $projects[$build->getProjectId()]['successes']++; if ( empty($projects[$build->getProjectId()]['lastsuccess']) ) { $projects[$build->getProjectId()]['lastsuccess'] = $build; } break; case 3: $projects[$build->getProjectId()]['health']--; $projects[$build->getProjectId()]['failures']++; if ( empty($projects[$build->getProjectId()]['lastfailure']) ) { $projects[$build->getProjectId()]['lastfailure'] = $build; } break; } $projects[$build->getProjectId()]['count']++; $projects[$build->getProjectId()]['projectname'] = $build->getProject()->getTitle(); $prevBuild = $build; endforeach; foreach($projects as $projectId => $project): switch($project['lastbuildstatus']) { case 0: $cls = 'info'; $status = 'Pending'; break; case 1: $cls = 'warning'; $status = 'Running'; break; case 2: $cls = 'success'; $status = 'Success'; break; case 3: $cls = 'error'; $status = 'Failed'; break; } $health = ($project['health'] <= 0 ? 'Stormy': ($project['successes'] < $project['count']? 'Overcast': 'Sunny')); $subcls = ($project['health'] <= 0 ? 'important': ($project['successes'] < $project['count']? 'warning': 'success')); ?> getId() ?>'> getStarted()->format("Y-m-d H:i:s") ?> getId() ?>'> getStarted()->format("Y-m-d H:i:s") ?> / build