我正在尝试从python脚本启动Jenkins参数化作业。由于环境要求,我无法安装python-jenkins。我正在使用原始请求模块。
我尝试启动的这项工作有三个参数:
我搜索并搜索,没有任何成功。
我设法通过启动以下两个字符串参数来启动作业:
import requests
url = "http://myjenkins/job/MyJobName/buildWithParameters"
target = "http://10.44.542.62:20000"
payload = "{payload: content}"
headers = {"Content-Type": "application/x-www-form-urlencoded"}
msg = {
'token': 'token',
'payload': [ payload ],
'target': [ target ],
}
r = requests.post(url, headers=headers, data=msg)
但是我无法在单个请求中发送文件和那些参数。
我尝试了requests.post
个文件参数但失败了。
答案 0 :(得分:1)
事实证明,通过HTTP在单个请求中发送数据和文件是不可能的。
答案 1 :(得分:0)
导入jenkinsapi 来自jenkinsHandler导入JenkinsHandler 在你的python脚本
将参数传递给buildJob(),(例如<您的JenkinsHandler对象名称> .buildJob()) JenkinsHandler模块具有init(),buildJob(),isRunning()等函数,有助于触发构建
答案 2 :(得分:0)
以下是一个例子:
curl -vvv -X POST http://127.0.0.1:8080/jenkins/job/jobname/build
--form file0='@/tmp/yourfile'
--form json='{"parameter": [{"name":"file", "file":"file0"}]}'
--form json='{"parameter": [{"name":"payload", "value":"123"}]
--form json='{"parameter": [{"name":"target", "value":"456"}]}'