95 lines
No EOL
2.5 KiB
PHTML
95 lines
No EOL
2.5 KiB
PHTML
<?php
|
|
// echo "<pre>";
|
|
// var_dump($builds);
|
|
// echo "</pre>";
|
|
|
|
$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->getStarted();
|
|
}
|
|
break;
|
|
case 3:
|
|
$projects[$build->getProjectId()]['health']--;
|
|
$projects[$build->getProjectId()]['failures']++;
|
|
|
|
if ( empty($projects[$build->getProjectId()]['lastfailure']) ) {
|
|
$projects[$build->getProjectId()]['lastfailure'] = $build->getStarted();
|
|
}
|
|
break;
|
|
}
|
|
|
|
$projects[$build->getProjectId()]['count']++;
|
|
$projects[$build->getProjectId()]['projectname'] = $build->getProject()->getTitle();
|
|
$prevBuild = $build;
|
|
endforeach;
|
|
|
|
// echo "<pre>";
|
|
// var_dump($projects);
|
|
// echo "</pre>";
|
|
|
|
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;
|
|
}
|
|
?>
|
|
<tr class="<?php print $cls; ?>">
|
|
<td><?= $project['health'] < 0 ? 'Stormy': ($project['health'] < 5? 'Overcast': 'Sunny') ?></td>
|
|
<td><?= $project['projectname'] ?></td>
|
|
<td><?= empty($project['lastsuccess']) ? 'Never' :$project['lastsuccess']->format("Y-m-d H:i:s") ?></td>
|
|
<td><?= empty($project['lastfailure']) ? 'Never' :$project['lastfailure']->format("Y-m-d H:i:s") ?></td>
|
|
<td><?= $project['successes'] ?>/<?= $project['failures'] ?></td>
|
|
<td><a href='<?= PHPCI_URL ?>project/build/<?= $projectId ?>'>build</a></td>
|
|
</tr>
|
|
<?php endforeach; ?> |