def run_jenkins_job(phrase): job_name = JOBS_MAPPING.get(phrase, None) if job_name is None: return "任务不存在" try: server = Jenkins(JENKINS_URL, username=JENKINS_USER, password=JENKINS_PASS) except HTTPError as ex: return "jenkins连接出错: %s" % ex job = server[job_name] job_buildid = server.get_job(job_name).get_next_build_number() run_job = job.invoke() time.sleep(10) # 查看任务状态 url = f'''{job.baseurl}/{job_buildid}/''' obj = Build(url, job_buildid, job) obj.block() # obj 只是获取当时的任务状态,所以需要等待任务执行完,再获取一次状态 obj = Build(url, job_buildid, job) result = f'''{phrase}完成, 任务名称: {obj.name}, 执行结果:{obj.get_status()}, 耗时: {obj.get_duration().total_seconds()}秒''' return result