關於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)
更多解決方法參照