Jenkins - 如何使用 curl、http 发送布尔参数?

Posted

技术标签:

【中文标题】Jenkins - 如何使用 curl、http 发送布尔参数?【英文标题】:Jenkins - How to send boolean parameter using curl, http? 【发布时间】:2019-06-08 07:02:03 【问题描述】:

我正在尝试使用 curl、http-get 向 Jenkins 发送布尔参数,但没有成功。需要有人告诉我这里出了什么问题。

我确实尝试将其发送为trueTrue1,但这些都不起作用。

jenkins 中的作业被设置为管道并已参数化。从 GUI 中添加了 3 个参数:

bp1 布尔值 1 bp2 布尔值 2 sp字符串(这个是检查参数是否发送过

默认值如下:

bp1 - 错误 bp2 - 错误 sp - 空

管道代码:

stage ('bools') 
    echo 'bool 1 is:' + params.bp1
    echo 'bool 2 is:' + params.bp2
    echo 'string is:' + params.sp

用于调用构建的命令(在浏览器或邮递员中):

http://X.X.X.X/jenkins/job/bool_debug/buildWithParameters?token=booltest&bp1=true&bp2=false$sp='this is text from param'

预期结果是bool 1 is:true,但得到了bool 1 is:false。从 API 调用时,Jenkins 没有更改(勾选复选框)布尔参数。换句话说:

我得到了什么:

Running in Durability level: MAX_SURVIVABILITY
[Pipeline] stage
[Pipeline]  (bools)
[Pipeline] echo
bool 1 is:false
[Pipeline] echo
bool 2 is:false
[Pipeline] echo
string is:'this is text from param'
[Pipeline] 
[Pipeline] // stage
[Pipeline] End of Pipeline
Finished: SUCCESS

应该是什么:

Running in Durability level: MAX_SURVIVABILITY
[Pipeline] stage
[Pipeline]  (bools)
[Pipeline] echo
bool 1 is:true    <--------------------------
[Pipeline] echo
bool 2 is:false
[Pipeline] echo
string is:'this is text from param'
[Pipeline] 
[Pipeline] // stage
[Pipeline] End of Pipeline
Finished: SUCCESS

【问题讨论】:

【参考方案1】:

面对同样的问题,认为这是一个 Jenkins 错误。我最终创建了另一个管道,该管道使用参数作为解决方法来触发所需的管道。

【讨论】:

以上是关于Jenkins - 如何使用 curl、http 发送布尔参数?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 REST API 更新 jenkins 凭据?

从队列ID获取Jenkins作业构建ID

Jenkins webbook 在 Bitbucket 中失败,但在 curl 中工作正常

使用rest api生成jenkins api令牌

Jenkins自动构建的几种方式

jenkins 使用nginx 反向代理或者采用curl无法调用(403)