<?php date_default_timezone_set('America/Detroit'); require 'vendor/autoload.php'; $PROJROOT = dirname(__FILE__) . "/"; 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'])) {
<?php date_default_timezone_set('America/Detroit'); require 'vendor/autoload.php'; $PROJROOT = dirname(__FILE__) . "/"; require_once $PROJROOT . "src/Utils.php"; require_once $PROJROOT . "src/Hipchat.php"; $CONFIG = getConfig($PROJROOT); $channels = $CONFIG['channels']; $outputString = ""; foreach ($channels as $channel) { $previousRun = getPreviousRunData($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); saveCurrentState($view, $channel); printRecentlyBrokenOrBackToSuccessBuildOutputText($view, $jenkins, $channel, $outputString, $previousRun, $hipchat); } 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)) {