我尝试启动
curl -X POST -u "user:pass" -H Jenkins-Crumb:thecrumbnumber http://myjenkinsserver/jenkins/job/testjob/buildWithParameters?=PARAMETER=somenumber
它通过触发参数化构建来工作,但问题是没有值传递给构建(奇怪的是,即使在作业中设置了令牌,我也可以在没有它的情况下触发作业)。在 jenkins 中,该作业有一个配置的字符串“PARAMETER”,带有或不带有默认值,但从未传递来自curl启动的参数。我可能缺少什么?
我正在使用:
curl -X POST -u "user" "http://myjenkins/path/to/my/job/buildWithParameters?GERRIT_REFNAME=feature/retry&goal=package"
在这里,它就像魅力一样发挥作用。
请注意您粘贴的 URL 中“PARAMETER”前面的“=”。
使用curl表单参数(
-F param1=value1
)解决了问题:
# parameters need to be passed via: -F param1=value1 -F param2=value2 ...
curl -X POST http://myJenkins/job/testjob/buildWithParameters?token=<myToken> -F param1=value1
我遇到了同样的问题,但上述方法都没有帮助。当我通过 url 参数 传递参数时,作业会被触发,但 url 参数不会传播。
# job is triggered but parameters are not propagated
curl -X POST http://myJenkins/job/testjob/buildWithParameters?token=<myToken>¶m1=value1
请尝试以下操作:
curl -X POST http://<jenkins URL>/jenkins/job/TESTS/job/<Your job's Name>/buildWithParameters \
--user <Jenkins account>:<account's TokenID> \
--data token=<job's token (if required)> \
--data parameter=some_value
...
--data MessageTextParameter=My%20Text
我使用下面的命令来传递多个参数。
curl -X POST "https://myjenkins.com/job/jobname/buildWithParameters?token=developer&name=abc&userid=CFDH123&[email protected]"
注意:参数名称区分大小写。
在调用 Jenkins url 将参数作为 JSON 有效负载调用时,Jenkins Confluence 页面中似乎存在拼写错误。 https://wiki.jenkins.io/display/JENKINS/Remote+access+API 尝试使用 url 后缀作为构建buildWithParameters 的并且它正在工作..
curl -X POST -u "user:token/password" "http://myjenkins/path/to/my/job/build --data-urlencode json='{"parameter": [{"name":"GERRIT_REFNAME", "value":"feature/retry"},{"name":"goal", "value":"package"}]}'
我发现这非常令人困惑和不一致,尤其是当想要在主体中传递参数时。以下是我发现的使用参数构建的最佳方法(传递一些参数并使用指定的默认值)。
curl -X POST -u "user:pass" \
http://myjenkinsserver/jenkins/job/testjob/buildWithParameters \
-F PARAMETER=somenumber
我还尝试了以下方法并提及它们,因为它们出现在各种文档中,但似乎无法正常工作/如描述的那样。
下面提交一个构建(build vs buildWithParameters URL)并传递参数,但不使用任何其他默认参数。
curl -X POST -u "user:pass" \
http://myjenkinsserver/jenkins/job/testjob/build \
--data-urlencode json='{"parameter": [{"name":"PARAMETER", "value":"somenumber"}]}'
下面看起来应该可以工作,但我发现参数没有正确传递。
curl -X POST -u "user:pass" \
http://myjenkinsserver/jenkins/job/testjob/build \
--data-urlencode json='{"parameter": [{"name":"PARAMETER", "value":"somenumber"}]}'
以下两种格式都适合我。
curl -X POST http://hostname:8080/job/first_pipeline/build --user siebelcrm:xxxxxx --data-urlencode json='{"parameter": [{"name":"Greetings", "value":"New123"}]} ' -H "Jenkins-Crumb:xxxxx"
或
curl -X POST http://hostname:8080/job/first_pipeline/buildWithParameters?Greetings=New1 --user Admin:xxxxx --data-urlencode json=' ' -H "Jenkins-Crumb:xxxxx"