function printRecentlyBrokenOrBackToSuccessBuildOutputText($view, \JenkinsApi\Jenkins $jenkins, $channel, $outputString, $previousRun, $hipchat) { foreach ($view->allJobs as $job) { $color = ""; if ($job->buildable == true) { echo "Checking job : " . $job->name . " with color: " . $job->color . "\n"; if (strcmp($job->color, "red") == 0) { $succeededJob = $jenkins->getJob($job->name); if (hasColorChangedSinceLastRun($succeededJob, $previousRun)) { if ($succeededJob->builds[0]->timestamp / 1000 < strtotime($channel['alerttimestring'])) { $color = "red"; $outputString .= "<a target=\"_blank\" href = \"" . $job->url . "\">" . $job->name . "</a> has failed to build. \n"; } } } else { if (strcmp($job->color, "blue") == 0) { $succeededJob = $jenkins->getJob($job->name); if (hasColorChangedSinceLastRun($succeededJob, $previousRun)) { if ($succeededJob->builds[0]->timestamp / 1000 < strtotime($channel['alerttimestring'])) { $color = "green"; $outputString .= "<a target=\"_blank\" href = \"" . $job->url . "\">" . $job->name . "</a> back to successful build\n"; } } } } } else { echo "Skipping unbuildable: " . $job->name . "\n"; } if (strlen($outputString) > 0) { $outputString = getGreeting() . "\n" . $outputString; $hipchat->postOutputWithColor($outputString, $color); $outputString = ""; } } }
require_once $PROJROOT . "src/Utils.php"; require_once $PROJROOT . "src/Hipchat.php"; $CONFIG = getConfig($PROJROOT); $channels = $CONFIG['channels']; $outputString = ""; foreach ($channels as $channel) { $hipchat = new Hipchat($channel); $jenkinsserver = $channel['jenkinsserver']; echo "Connecting to " . $jenkinsserver . "\n"; $jenkins = new \JenkinsApi\Jenkins($jenkinsserver); $viewToWatch = $channel['jenkinsview']; echo "Loading jobs for view " . $viewToWatch . "\n"; $view = $jenkins->getView($viewToWatch); $outputString = getBrokenBuildOutputText($view, $jenkins, $channel, $outputString); if (strlen($outputString) > 0) { $outputString = getGreeting() . "\n" . $outputString; $hipchat->postOutput($outputString); } } function getBrokenBuildOutputText($view, \JenkinsApi\Jenkins $jenkins, $channel, $outputString) { foreach ($view->jobs as $job) { if ($job->buildable == true) { if (strcmp($job->color, "red") == 0) { $failedJob = $jenkins->getJob($job->name); if ($failedJob->builds[0]->timestamp / 1000 < strtotime($channel['alerttimestring'])) { $outputString .= "<a href=\"" . $job->url . "\">" . $job->name . "</a> appears to have been broken since " . getPrettyDateFromTimestamp($failedJob->builds[0]->timestamp / 1000) . " " . "\n"; } } } }
<?php function getGreeting($hrOfDay) { $hrOfDay = (int) $hrOfDay; switch ($hrOfDay) { case $hrOfDay >= 6 && $hrOfDay <= 11: $greeting = "Good morning!"; break; case $hrOfDay >= 12 && $hrOfDay <= 17: $greeting = "Good afternoon!"; break; case $hrOfDay >= 18 && $hrOfDay <= 20: $greeting = "Good evening!"; break; case $hrOfDay >= 21 || $hrOfDay <= 5: $greeting = "Good night!"; break; } return $greeting; } print '<p>START'; print '<p>Passing 8AM: Greeting = ' . getGreeting(8); print '<p>Passing 12PM: Greeting = ' . getGreeting(12); print '<p>Passing 5PM: Greeting = ' . getGreeting(18); print '<p>Passing 10PM: Greeting = ' . getGreeting(22); print '<p>END';
<?php function getGreeting($hrOfDay) { $hrOfDay = (int) $hrOfDay; switch ($hrOfDay) { case $hrOfDay >= 8 && $hrOfDay <= 11: $greeting = "Good morning!"; break; case $hrOfDay > 11: $greeting = "Good day"; break; } return $greeting; } print '<p>START'; print '<p>Passing 8AM: Greeting = ' . getGreeting(17); print '<p>End';