关于python想要带文件执行jenkins job
不带文件执行jenkins
param_dict = {
<-参数1的名字->: <-参数1的值->,
<-参数2的名字->: <-参数2的值->
}
server = jenkins.Jenkins(jenkins_server_url, username=use_id, password=api_token)
server.build_job(str_change, parameters=param_dict, token=api_token)
带文件对象执行jenkins
import requests
payload = (
('file0', open("FILE_LOCATION_ON_LOCAL_MACHINE", "rb")),
('json', '{ "parameter": [
{"name":"FILE_LOCATION_AS_SET_IN_JENKINS", "file":"file0" },
...
]}')
)
resp = requests.post("JENKINS_URL/job/JOB_NAME/build",
auth=('username','password'),
headers={"Jenkins-Crumb":"9e1cf46405223fb634323442a55f4412"},
files=payload )
直接使用系统执行curl语句
param_dict = {
<-参数1的名字->: <-参数1的值->,
<-参数2的名字->: <-参数2的值->
}
str_post = 'curl -X POST {}job/{}/build --user {}:{} --form json="{}" --form file0=@{}'.format(jenkins_server_url, str_change, use_id, api_token, str(param_dict), <-文件的绝对路径->)
os.popen(str_post)
更多解决方法参照