jenkins: added more list filters
This commit is contained in:
57
jenkins.py
57
jenkins.py
@@ -13,16 +13,6 @@ New failures are reported in the jenkins window, and a desktop notification is s
|
|||||||
|
|
||||||
The 'prof_remind_interval' specifies the time between reminder notifications of broken builds
|
The 'prof_remind_interval' specifies the time between reminder notifications of broken builds
|
||||||
|
|
||||||
The following commands are available:
|
|
||||||
|
|
||||||
/jenkins list - list all jobs
|
|
||||||
/jenkins build [job] - trigger a build for the job
|
|
||||||
/jenkins open [job] - open the job in the systems default browser
|
|
||||||
/jenkins remind on|off - Enable or disable reminder notifications
|
|
||||||
/jenkins notify on|off - Enable or disable build status change notifications
|
|
||||||
/jenkins settings - Show current settings
|
|
||||||
/jenkins help - Show help
|
|
||||||
|
|
||||||
When in the jenkins window, the "/jenkins" part of the command can be omitted.
|
When in the jenkins window, the "/jenkins" part of the command can be omitted.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@@ -100,8 +90,15 @@ class JobList():
|
|||||||
def add_job(self, name, build_number, state):
|
def add_job(self, name, build_number, state):
|
||||||
self.jobs.append((name, build_number, state))
|
self.jobs.append((name, build_number, state))
|
||||||
|
|
||||||
def get_jobs(self):
|
def get_jobs(self, in_state=None):
|
||||||
return self.jobs
|
if not in_state:
|
||||||
|
return self.jobs
|
||||||
|
else:
|
||||||
|
result = []
|
||||||
|
for name, build_number, state in self.jobs:
|
||||||
|
if state == in_state:
|
||||||
|
result.append((name, build_number, state))
|
||||||
|
return result
|
||||||
|
|
||||||
def get_job(self, jobname):
|
def get_job(self, jobname):
|
||||||
for name, build_number, state in self.jobs:
|
for name, build_number, state in self.jobs:
|
||||||
@@ -236,7 +233,6 @@ def _handle_input(win, line):
|
|||||||
_cmd_jenkins(words[0], words[1])
|
_cmd_jenkins(words[0], words[1])
|
||||||
|
|
||||||
def _list_jobs(jobs):
|
def _list_jobs(jobs):
|
||||||
prof.win_show(win_tag, "Jobs:")
|
|
||||||
for name, build_number, state in jobs:
|
for name, build_number, state in jobs:
|
||||||
if state == STATE_SUCCESS:
|
if state == STATE_SUCCESS:
|
||||||
prof.win_show_green(win_tag, " " + name + " #" + str(build_number) + " " + STATE_SUCCESS)
|
prof.win_show_green(win_tag, " " + name + " #" + str(build_number) + " " + STATE_SUCCESS)
|
||||||
@@ -262,8 +258,12 @@ def _help():
|
|||||||
prof.win_show(win_tag, "Commands:")
|
prof.win_show(win_tag, "Commands:")
|
||||||
prof.win_show(win_tag, " /jenkins help - Show this help")
|
prof.win_show(win_tag, " /jenkins help - Show this help")
|
||||||
prof.win_show(win_tag, " /jenkins jobs - List all jobs")
|
prof.win_show(win_tag, " /jenkins jobs - List all jobs")
|
||||||
|
prof.win_show(win_tag, " /jenkins failing - List all failing jobs")
|
||||||
|
prof.win_show(win_tag, " /jenkins passing - List all passing jobs")
|
||||||
|
prof.win_show(win_tag, " /jenkins unstable - List all unstable jobs")
|
||||||
prof.win_show(win_tag, " /jenkins build [job] - Trigger build for job")
|
prof.win_show(win_tag, " /jenkins build [job] - Trigger build for job")
|
||||||
prof.win_show(win_tag, " /jenkins open [job] - Open job in browser")
|
prof.win_show(win_tag, " /jenkins open [job] - Open job in browser")
|
||||||
|
prof.win_show(win_tag, " /jenkins log [job] - Show the latest build log")
|
||||||
prof.win_show(win_tag, " /jenkins remind on|off - Enable/disable reminder notifications")
|
prof.win_show(win_tag, " /jenkins remind on|off - Enable/disable reminder notifications")
|
||||||
prof.win_show(win_tag, " /jenkins notify on|off - Enable/disable build notifications")
|
prof.win_show(win_tag, " /jenkins notify on|off - Enable/disable build notifications")
|
||||||
prof.win_show(win_tag, " /jenkins settings - Show current settings")
|
prof.win_show(win_tag, " /jenkins settings - Show current settings")
|
||||||
@@ -288,9 +288,40 @@ def _cmd_jenkins(cmd=None, arg=None):
|
|||||||
|
|
||||||
if cmd == "jobs":
|
if cmd == "jobs":
|
||||||
if job_list and job_list.get_jobs():
|
if job_list and job_list.get_jobs():
|
||||||
|
prof.win_show(win_tag, "Jobs:")
|
||||||
_list_jobs(job_list.get_jobs())
|
_list_jobs(job_list.get_jobs())
|
||||||
else:
|
else:
|
||||||
prof.win_show(win_tag, "No job data yet.")
|
prof.win_show(win_tag, "No job data yet.")
|
||||||
|
elif cmd == "failing":
|
||||||
|
if job_list:
|
||||||
|
jobs_in_state = job_list.get_jobs(STATE_FAILURE)
|
||||||
|
if jobs_in_state:
|
||||||
|
prof.win_show(win_tag, "Failing jobs:")
|
||||||
|
_list_jobs(jobs_in_state)
|
||||||
|
else:
|
||||||
|
prof.win_show(win_tag, "No failing jobs.")
|
||||||
|
else:
|
||||||
|
prof.win_show(win_tag, "No job data yet.")
|
||||||
|
elif cmd == "passing":
|
||||||
|
if job_list:
|
||||||
|
jobs_in_state = job_list.get_jobs(STATE_SUCCESS)
|
||||||
|
if jobs_in_state:
|
||||||
|
prof.win_show(win_tag, "Passing jobs:")
|
||||||
|
_list_jobs(jobs_in_state)
|
||||||
|
else:
|
||||||
|
prof.win_show(win_tag, "No passing jobs.")
|
||||||
|
else:
|
||||||
|
prof.win_show(win_tag, "No job data yet.")
|
||||||
|
elif cmd == "unstable":
|
||||||
|
if job_list:
|
||||||
|
jobs_in_state = job_list.get_jobs(STATE_UNSTABLE)
|
||||||
|
if jobs_in_state:
|
||||||
|
prof.win_show(win_tag, "Unstable jobs:")
|
||||||
|
_list_jobs(jobs_in_state)
|
||||||
|
else:
|
||||||
|
prof.win_show(win_tag, "No unstable jobs.")
|
||||||
|
else:
|
||||||
|
prof.win_show(win_tag, "No job data yet.")
|
||||||
elif cmd == "build":
|
elif cmd == "build":
|
||||||
if not arg:
|
if not arg:
|
||||||
prof.win_show(win_tag, "You must supply a job argument.")
|
prof.win_show(win_tag, "You must supply a job argument.")
|
||||||
|
|||||||
Reference in New Issue
Block a user