[Python]python-jenkins 启动需要参数的job

时间:2019-12-08
本文章向大家介绍[Python]python-jenkins 启动需要参数的job,主要包括[Python]python-jenkins 启动需要参数的job使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

需求:

我要用python通过api,启动这个job,并且启动这个job需要1个参数 

安装依赖:

pipenv install python-jenkins

熟悉API的使用方法:

了解一个API的最好办法,就是先看它的 官方文档,

从中找到自己需要的方法 ,弄明白要给方法传什么参,参数类型,返回值类型

然后再做一个小demo,验证自己的想法,顺便也能熟悉一下这个api

 

我从官方文档中找到下面这2个方法,正是我需要的: build_job用来启动job, get_build_console_output用来获取job的构建日志

build_job(nameparameters=Nonetoken=None)

Trigger build job.

This method returns a queue item number that you can pass to Jenkins.get_queue_item(). Note that this queue number is only valid for about five minutes after the job completes, so you should get/poll the queue information as soon as possible to determine the job’s URL.

Parameters:
  • name – name of job
  • parameters – parameters for job, or Nonedict
  • token – Jenkins API token
Returns:

int queue item

get_build_console_output(namenumber)

Get build console text.

Parameters:
  • name – Job name, str
  • number – Build number, int
Returns:

Build console output, str

创建测试工程:

接下来创建1个测试job,验证自己的想法

启动该job,需要传递1个字符型参数,参数名是Para1,默认值是:参数1

 

 在shell中打印Para1的参数值:

 

 代码示例:

import jenkins

#定义远程的jenkins master server 的url以及Port
jenkins_server_url = 'http://10.2.1.92:8080/jenkins/'
#定义用户的userid 和 apitoken(在jenkins中生成)
user_id = 'admin'
api_token = '11d8c79994b1e6d554c857b1d96fcf4dfe' #测试服务器

#实例化jenkins对象,连接远程的jenkins master server
server = jenkins.Jenkins(jenkins_server_url,username=user_id,password=api_token)
print(server)

name ='pubTest1'
parameters={'Para1':'Python启动带参数的job'} #dict类型
#构建job(带参数) server.build_job(name,parameters)

构建结果:

 

 这样就通过 python启动了带参数的job

接下来,通过get_build_console_output方法 打印job的构建日志

#获取job的最后次构建号
lastbuildNumber=server.get_job_info(name)['lastBuild']['number']

#输出构建日志
log=server.get_build_console_output(name,lastbuildNumber)
print(log)

结果如下:

由用户 admin 启动
构建中 在工作空间 /root/.jenkins/workspace/pubTest1 中
[pubTest1] $ /bin/sh -xe /usr/local/tomcat/apache-tomcat-8.5.40/temp/jenkins3208269061259629186.sh
+ echo Python启动带参数的job
Python启动带参数的job
Finished: SUCCESS

 

 关于如何获取jenkins token和user_id可参考前文:通过jenkins-Python在后台操作Jenkins构建job

原文地址:https://www.cnblogs.com/kaerxifa/p/12004631.html