from array import *
from rpi_led_manager import RaspberryPi
from jenkinsapi.jenkins import Jenkins
class JenkinsStatus:
def __init__(self, jenkins_url, jenkins_job, rpi):
self.jenkins_url = jenkins_url
self.jenkins_job = jenkins_job
self.raspberry_pi = rpi
def get_server_instance(self):
server = Jenkins(self.jenkins_url)
return server
def get_latest_job(self):
server = self.get_server_instance()
job = server[self.jenkins_job]
latest = job.get_last_build()
return latest
def get_latest_job_status(self):
global current_status
job = self.get_latest_job()
status = job.get_status()
current_status = status
return status
def set_status_led(self):
status = self.get_latest_job_status()
print status
if status == 'FAILURE':
raspberry_pi.set_red()
if status == 'SUCCESS':
raspberry_pi.set_blue()
if status == 'UNSTABLE':
raspberry_pi.set_yellow()
self.raspberry_pi.dash()
# Set appropriate GPIO pins for blue, yellow and red LEDs
raspberry_pi = RaspberryPi(11, 7, 16)
jenkins_url = 'http://example.com:8080'
jobs = ['jenkins-example-job1', 'jenkins-example-job2']
for job in jobs:
j = JenkinsStatus(jenkins_url, job, raspberry_pi)
print 'Jenkins Version: ' + j.get_server_instance().version
print 'Jenkins Job: ' + job
print j.get_latest_job()
j.get_latest_job_status()
j.set_status_led()
# |
Change |
User |
Description |
Committed |
|
#1
|
15452 |
Liz Lam |
Adding Jenkins/Raspberry Pi LED project |
|
|