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";
                }
            }
        }
    }
예제 #3
0
<?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';
예제 #4
0
<?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';