How do I retrieve last console output of a jenkins job using python-jenkins?
Ok. I feel really stupid at 2:18am. The script works.
Just needed to remove the preceding '/' in front of the job name.
Now I'm able to retrieve the full output.
server = jenkins.Jenkins('http://jenkins.abc.xyz.io:8080', username='foo', password='foo!')jenkins_url = "http://jenkins.abc.xyz.io:8080"user = server.get_whoami()version = server.get_version()print('Hello %s from Jenkins %s' % (user['fullName'], version))#name='myapp-build' #without the /number=46print server.get_build_console_output(name, number)
This code will continuously compare old job == current job number. Once the current job will finish. The whole output will be in console_output.
def jenkins_wait(): global BuildID, BuildStatus server = jenkins.Jenkins(Jenkins_url, username=jenkins_user, password=jenkins_pwd) time.sleep(5) while True: temptime = datetime.now() Job_time = temptime.strftime("%H:%M:%S") print('Jenkins build ID :',(server.get_job_info(jOBnAmE)['lastBuild']['number'])," Time:", Job_time) time.sleep(5) processLoading() #Display processing bar. if server.get_job_info(jOBnAmE)['lastCompletedBuild']['number'] == server.get_job_info(jOBnAmE)['lastBuild']['number']: print("Last ID %s, Current ID %s" % (server.get_job_info(jOBnAmE)['lastCompletedBuild']['number'], server.get_job_info(jOBnAmE)['lastBuild']['number'])) BuildID = server.get_job_info(jOBnAmE)['lastBuild']['number'] print (BuildID) break time.sleep(25) print('Job execution has been completed.') console_output = server.get_build_console_output(jOBnAmE, server.get_job_info(jOBnAmE)['lastBuild']['number']) console_output = re.split('\r\n',console_output)