Exp*_*ing 59 continuous-integration continuous-deployment jenkins continuous-delivery
我使用以下方法远程调用Jenkins作业:
wget http://<ServerIP>:8080/job/Test-Jenkins/build?token=DOIT
Run Code Online (Sandbox Code Playgroud)
这里Test-Jenkins调用了job,它DOIT是我使用过的安全令牌.
现在我需要将一些参数传递给此作业的build.xml文件,即Test-Jenkins.
我还没有弄清楚如何传递变量.
Pet*_*tze 69
请参阅Jenkins文档:参数化构建
以下是您感兴趣的行:
http://server/job/myjob/buildWithParameters?token=TOKEN&PARAMETER=Value
Run Code Online (Sandbox Code Playgroud)
Zac*_*olz 55
要使用自己的/自定义参数触发构建,请调用以下URL(使用POST或GET):
http://JENKINS_SERVER_ADDRESS/job/YOUR_JOB_NAME/buildWithParameters?myparam=myparam_value
Run Code Online (Sandbox Code Playgroud)
然后在Jenkins作业配置中,勾选名为" This build is parameterized" 的框,单击" Add Parameter"按钮并选择" String Parameter"下拉值.
现在定义您的参数 - 示例:
现在,您可以在作业/构建管道中使用您的参数,例如:
要补充这个问题,我发现您不必使用端点/buildWithParameters。
在我的场景中,我有一个脚本可以触发 Jenkins 在部署后运行测试。其中一些测试需要有关部署的额外信息才能正常工作。
/buildWithParameters如果我尝试在不需要参数的作业上使用,该作业将不会运行。我不想进入并编辑每个作业以需要假参数只是为了让作业运行。
相反,我发现你可以像这样传递参数:
curl -X POST --data-urlencode "token=${TOKEN}" --data-urlencode json='{"parameter": [{"name": "myParam", "value": "TEST"}]}' https://jenkins.corp/job/$JENKINS_JOB/build
Run Code Online (Sandbox Code Playgroud)
这样,每当进行调用时,它都会将带有值的json=...参数传递给作业。但是,即使 Jenkins 作业不需要参数 ,它仍然会运行。myParamTESTmyParam
唯一不涵盖的情况是作业是否有一个未在json. 即使作业为参数设置了默认值,也将无法运行作业。在这种情况下,当您调用时,您将遇到以下错误消息/堆栈跟踪/build:
java.lang.IllegalArgumentException: No such parameter definition: myParam
我意识到这个答案已经晚了几年,但我希望这对其他人来说可能是有用的信息!
| 归档时间: |
|
| 查看次数: |
97245 次 |
| 最近记录: |