You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过命令行正确传递参数触发Jenkins参数化Pipeline任务?

解决Jenkins Pipeline CLI触发参数不生效问题

问题根源

你使用的curl -I是发送HEAD请求,Jenkins的buildWithParameters接口不会处理HEAD请求中的参数,仅返回响应头,实际触发构建时会默认使用参数的初始值。

解决方案

1. 移除-I选项,使用GET请求

直接发送GET请求传递参数,命令如下:

curl "https://<jenkinsURL>/job/<jobName>/buildWithParameters?token=<tokenName>&TestCase=<TCName>"
  • 如果<TCName>包含空格、&、=这类特殊字符,需要做URL编码:比如空格替换为%20,&替换为%26。

2. 处理Jenkins CSRF保护(若开启)

如果Jenkins启用了CSRF防护,需要先获取CRUMB再发送请求:

  • 第一步获取CRUMB:
curl -u <你的用户名>:<你的API令牌> "https://<jenkinsURL>/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,':',//crumb)"
  • 第二步带上CRUMB发送请求(替换<获取到的CRUMB内容>):
curl -u <你的用户名>:<你的API令牌> -H "<获取到的CRUMB内容>" "https://<jenkinsURL>/job/<jobName>/buildWithParameters?token=<tokenName>&TestCase=<TCName>"

3. 验证Jenkins参数配置

  • 确认Pipeline中的参数名称是**TestCase**(Jenkins参数名区分大小写,不能写错)
  • 确认选择型参数的选项列表中存在你传入的<TCName>,拼写、大小写、空格完全匹配
  • 检查任务是否勾选了「允许参数化构建」,且参数类型为「Choice Parameter」

4. 使用POST请求(推荐,适配特殊参数值)

用POST方式传递参数,避免URL编码的麻烦:

curl -u <你的用户名>:<你的API令牌> -X POST "https://<jenkinsURL>/job/<jobName>/buildWithParameters" --data "token=<tokenName>&TestCase=<TCName>"

调试技巧

  • 查看Jenkins构建日志,检查「Parameters」区域是否显示了你传入的参数值,确认参数是否被正确接收
  • 直接在浏览器地址栏输入构建URL,测试是否能触发带指定参数的构建,排查是否是curl命令的问题

内容的提问来源于stack exchange,提问作者Gaurank Verma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 03:15:40