From 76adf14b28320266335c23cc5df343d489387d73 Mon Sep 17 00:00:00 2001 From: Gabriel Baker Date: Wed, 5 Jun 2013 06:23:47 +0100 Subject: [PATCH 1/6] Initial summary changes --- PHPCI/Controller/IndexController.php | 2 +- PHPCI/Store/BuildStore.php | 2 +- PHPCI/View/Index/index.phtml | 6 +-- PHPCI/View/SummaryTable.phtml | 61 ++++++++++++++++++++++++++++ 4 files changed, 66 insertions(+), 5 deletions(-) create mode 100644 PHPCI/View/SummaryTable.phtml diff --git a/PHPCI/Controller/IndexController.php b/PHPCI/Controller/IndexController.php index c185d2f3..2404a047 100644 --- a/PHPCI/Controller/IndexController.php +++ b/PHPCI/Controller/IndexController.php @@ -33,7 +33,7 @@ class IndexController extends \PHPCI\Controller $projects = $this->_projectStore->getWhere(array(), 50, 0, array(), array('title' => 'ASC')); $summary = $this->_buildStore->getBuildSummary(); - $summaryView = new b8\View('BuildsTable'); + $summaryView = new b8\View('SummaryTable'); $summaryView->builds = $summary['items']; $this->view->builds = $this->getLatestBuildsHtml(); diff --git a/PHPCI/Store/BuildStore.php b/PHPCI/Store/BuildStore.php index 6b26c3c7..fca490f2 100644 --- a/PHPCI/Store/BuildStore.php +++ b/PHPCI/Store/BuildStore.php @@ -31,7 +31,7 @@ class BuildStore extends BuildStoreBase $count = 0; } - $query = 'SELECT b.* FROM build b LEFT JOIN project p on p.id = b.project_id GROUP BY b.project_id ORDER BY p.title ASC, b.id DESC'; + $query = 'SELECT b.* FROM build b LEFT JOIN project p on p.id = b.project_id ORDER BY p.title ASC, b.id DESC'; $stmt = \b8\Database::getConnection('read')->prepare($query); if ($stmt->execute()) { diff --git a/PHPCI/View/Index/index.phtml b/PHPCI/View/Index/index.phtml index 887b46d3..8ffa4b56 100644 --- a/PHPCI/View/Index/index.phtml +++ b/PHPCI/View/Index/index.phtml @@ -44,10 +44,10 @@ - + - - + + diff --git a/PHPCI/View/SummaryTable.phtml b/PHPCI/View/SummaryTable.phtml new file mode 100644 index 00000000..cacfd204 --- /dev/null +++ b/PHPCI/View/SummaryTable.phtml @@ -0,0 +1,61 @@ +"; +// var_dump($builds); +// echo ""; + +$maxbuildcount = 5; +$projects = array(); +$prevBuild = null; +$health = false; + +foreach($builds as $build): + + if ( is_null($prevBuild) || $build->getProjectId() !== $prevBuild->getProjectId() ) { + $health = false; + $projects[$build->getProjectId()]['count'] = 0; + $projects[$build->getProjectId()]['health'] = 0; + } + + if ( + $build->getStatus() < 2 || + ( + !is_null($prevBuild) && + $projects[$build->getProjectId()]['count'] >= $maxbuildcount && + $build->getProjectId() === $prevBuild->getProjectId() + ) + ) { + continue; + } + switch ((int)$build->getStatus()) { + case 2: + $projects[$build->getProjectId()]['health']++; + if ( empty($projects[$build->getProjectId()]['lastsuccess']) ) { + $projects[$build->getProjectId()]['lastsuccess'] = $build->getStarted(); + } + break; + case 3: + $projects[$build->getProjectId()]['health']--; + if ( empty($projects[$build->getProjectId()]['lastfailure']) ) { + $projects[$build->getProjectId()]['lastfailure'] = $build->getStarted(); + } + break; + } + $projects[$build->getProjectId()]['count']++; + $prevBuild = $build; +endforeach; + +// echo "
";
+// var_dump($projects);
+// echo "
"; + +foreach($projects as $projectId => $project): +?> + + + + + + + + + \ No newline at end of file From aef90eefa98282db6837741c1a82e15660359a8b Mon Sep 17 00:00:00 2001 From: Gabriel Baker Date: Wed, 5 Jun 2013 06:45:04 +0100 Subject: [PATCH 2/6] Some more summary tweaks --- PHPCI/View/Index/index.phtml | 4 ++-- PHPCI/View/SummaryTable.phtml | 34 ++++++++++++++++++++++------------ 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/PHPCI/View/Index/index.phtml b/PHPCI/View/Index/index.phtml index 8ffa4b56..dcc26701 100644 --- a/PHPCI/View/Index/index.phtml +++ b/PHPCI/View/Index/index.phtml @@ -48,8 +48,8 @@ - - + + diff --git a/PHPCI/View/SummaryTable.phtml b/PHPCI/View/SummaryTable.phtml index cacfd204..e3bbee1d 100644 --- a/PHPCI/View/SummaryTable.phtml +++ b/PHPCI/View/SummaryTable.phtml @@ -14,33 +14,43 @@ foreach($builds as $build): $health = false; $projects[$build->getProjectId()]['count'] = 0; $projects[$build->getProjectId()]['health'] = 0; + $projects[$build->getProjectId()]['successes'] = 0; + $projects[$build->getProjectId()]['failures'] = 0; } - if ( - $build->getStatus() < 2 || - ( - !is_null($prevBuild) && - $projects[$build->getProjectId()]['count'] >= $maxbuildcount && - $build->getProjectId() === $prevBuild->getProjectId() - ) - ) { + if ($build->getStatus() < 2) { continue; } + 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; @@ -52,10 +62,10 @@ foreach($projects as $projectId => $project): ?> - - - - + + + + \ No newline at end of file From fa721fe0ff3b989a5a288fb84896f820be3d2489 Mon Sep 17 00:00:00 2001 From: Gabriel Baker Date: Wed, 5 Jun 2013 06:49:49 +0100 Subject: [PATCH 3/6] build link --- PHPCI/View/Index/index.phtml | 4 ++-- PHPCI/View/SummaryTable.phtml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/PHPCI/View/Index/index.phtml b/PHPCI/View/Index/index.phtml index dcc26701..903b0bc2 100644 --- a/PHPCI/View/Index/index.phtml +++ b/PHPCI/View/Index/index.phtml @@ -48,8 +48,8 @@ - - + + diff --git a/PHPCI/View/SummaryTable.phtml b/PHPCI/View/SummaryTable.phtml index e3bbee1d..f58c7345 100644 --- a/PHPCI/View/SummaryTable.phtml +++ b/PHPCI/View/SummaryTable.phtml @@ -66,6 +66,6 @@ foreach($projects as $projectId => $project): - + \ No newline at end of file From ef310645efe906128a524225597303a50b2b5984 Mon Sep 17 00:00:00 2001 From: Gabriel Baker Date: Wed, 5 Jun 2013 09:46:42 +0100 Subject: [PATCH 4/6] added last build status background color --- PHPCI/View/SummaryTable.phtml | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/PHPCI/View/SummaryTable.phtml b/PHPCI/View/SummaryTable.phtml index f58c7345..de8923e7 100644 --- a/PHPCI/View/SummaryTable.phtml +++ b/PHPCI/View/SummaryTable.phtml @@ -10,17 +10,19 @@ $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 ($build->getStatus() < 2) { - continue; - } if ( !is_null($prevBuild) && $projects[$build->getProjectId()]['count'] >= $maxbuildcount && @@ -59,8 +61,30 @@ endforeach; // echo ""; 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; + } ?> - + From 8e200015b612e10b026f2a973033ec2025138f58 Mon Sep 17 00:00:00 2001 From: Gabriel Baker Date: Wed, 5 Jun 2013 22:34:21 +0100 Subject: [PATCH 5/6] linkificationism --- PHPCI/View/SummaryTable.phtml | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/PHPCI/View/SummaryTable.phtml b/PHPCI/View/SummaryTable.phtml index de8923e7..bcee508d 100644 --- a/PHPCI/View/SummaryTable.phtml +++ b/PHPCI/View/SummaryTable.phtml @@ -38,7 +38,7 @@ foreach($builds as $build): $projects[$build->getProjectId()]['successes']++; if ( empty($projects[$build->getProjectId()]['lastsuccess']) ) { - $projects[$build->getProjectId()]['lastsuccess'] = $build->getStarted(); + $projects[$build->getProjectId()]['lastsuccess'] = $build; } break; case 3: @@ -46,7 +46,7 @@ foreach($builds as $build): $projects[$build->getProjectId()]['failures']++; if ( empty($projects[$build->getProjectId()]['lastfailure']) ) { - $projects[$build->getProjectId()]['lastfailure'] = $build->getStarted(); + $projects[$build->getProjectId()]['lastfailure'] = $build; } break; } @@ -86,9 +86,25 @@ foreach($projects as $projectId => $project): ?> - - - + + + From b2fc63511b30131d4f937f723ffe4c0df1c20c1d Mon Sep 17 00:00:00 2001 From: Gabriel Baker Date: Sun, 9 Jun 2013 20:29:49 +0100 Subject: [PATCH 6/6] summary tweaks --- PHPCI/View/SummaryTable.phtml | 169 +++++++++++++++++----------------- 1 file changed, 86 insertions(+), 83 deletions(-) diff --git a/PHPCI/View/SummaryTable.phtml b/PHPCI/View/SummaryTable.phtml index bcee508d..6a81de0d 100644 --- a/PHPCI/View/SummaryTable.phtml +++ b/PHPCI/View/SummaryTable.phtml @@ -10,102 +10,105 @@ $health = false; foreach($builds as $build): - if ($build->getStatus() < 2) { - continue; - } + 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) || $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; - } + 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']++; + 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()]['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; - } + 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; + $projects[$build->getProjectId()]['count']++; + $projects[$build->getProjectId()]['projectname'] = $build->getProject()->getTitle(); + $prevBuild = $build; endforeach; -// echo "
";
-// var_dump($projects);
-// echo "
"; - foreach($projects as $projectId => $project): - switch($project['lastbuildstatus']) - { - case 0: - $cls = 'info'; - $status = 'Pending'; - break; + switch($project['lastbuildstatus']) + { + case 0: + $cls = 'info'; + $status = 'Pending'; + break; - case 1: - $cls = 'warning'; - $status = 'Running'; - break; + case 1: + $cls = 'warning'; + $status = 'Running'; + break; - case 2: - $cls = 'success'; - $status = 'Success'; - break; + case 2: + $cls = 'success'; + $status = 'Success'; + break; - case 3: - $cls = 'error'; - $status = 'Failed'; - break; - } + case 3: + $cls = 'error'; + $status = 'Failed'; + break; + } + + $health = ($project['health'] < 0 ? 'Stormy': ($project['health'] < 5? 'Overcast': 'Sunny')); + $subcls = ($project['health'] < 0 ? 'important': ($project['health'] < 5? 'warning': 'success')); ?>
- - - - - - + + + + + + \ No newline at end of file
IDHealth ProjectCommitBranchLast SuccessLast Failure Status
format("d-m-Y H:i:s" ) ?>format("d-m-Y H:i:s" ) ?>
Project Last Success Last FailureStatusSuccess/Failed BuildsTotal Builds
format("d-m-Y H:i:s" ) ?>format("d-m-Y H:i:s" ) ?>format("Y-m-d H:i:s") ?>format("Y-m-d H:i:s") ?>/
Project Last Success Last FailureSuccess/Failed BuildsTotal BuildsSuccess/Failures
format("Y-m-d H:i:s") ?> format("Y-m-d H:i:s") ?> /build
format("Y-m-d H:i:s") ?>
format("Y-m-d H:i:s") ?>format("Y-m-d H:i:s") ?> + + getId() ?>'> + getStarted()->format("Y-m-d H:i:s") ?> + + + + + getId() ?>'> + getStarted()->format("Y-m-d H:i:s") ?> + + + / build
- - getId() ?>'> - getStarted()->format("Y-m-d H:i:s") ?> - - - - - getId() ?>'> - getStarted()->format("Y-m-d H:i:s") ?> - - - /build + + + + + + getId() ?>'> + getStarted()->format("Y-m-d H:i:s") ?> + + + + + getId() ?>'> + getStarted()->format("Y-m-d H:i:s") ?> + + + /build