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

如何通过脚本重新触发Jenkins中由Gerrit触发的失败CI构建任务?

能否通过脚本重新触发Gerrit触发的Jenkins CI构建?

当然可以,有几种常用的脚本化触发方式,具体如下:

1. 调用Jenkins REST API

这是最通用的方式,无需额外工具,用curl等HTTP工具就能实现:

  • 前提是你拥有Jenkins的访问权限(账号密码或者API令牌都可以,推荐用API令牌更安全)
  • 基础触发命令(无参数场景):
    curl -X POST -u "你的Jenkins账号:API令牌或密码" "http://你的Jenkins地址/job/你的CI任务名称/build"
    
  • 如果需要关联特定Gerrit变更(比如重新构建某个变更集的某个补丁集),可以传递对应参数:
    curl -X POST -u "你的Jenkins账号:API令牌或密码" "http://你的Jenkins地址/job/你的CI任务名称/buildWithParameters?GERRIT_CHANGE_NUMBER=1234&GERRIT_PATCHSET_NUMBER=2"
    
    这里的参数名要和你Jenkins任务中配置的Gerrit参数完全一致,比如有些任务可能用GERRIT_CHANGE_ID而非GERRIT_CHANGE_NUMBER,按需调整即可。

2. 使用Jenkins CLI工具

如果能直接访问Jenkins服务器或者可以使用CLI客户端:

  • 先从你的Jenkins实例下载CLI jar包:访问http://你的Jenkins地址/jnlpJars/jenkins-cli.jar
  • 触发构建的命令示例:
    java -jar jenkins-cli.jar -s http://你的Jenkins地址/ build "你的CI任务名称" -p GERRIT_CHANGE_NUMBER=1234 -p GERRIT_PATCHSET_NUMBER=2
    

关键注意点

  • 确保你的账号拥有该CI任务的构建权限,否则会触发权限报错
  • 如果任务是参数化构建,必须传递正确的Gerrit相关参数,否则构建可能无法正确关联到目标代码变更,甚至执行失败
  • 若是流水线类型的任务,参数名要和流水线脚本中定义的参数保持一致

内容的提问来源于stack exchange,提问作者Raparthi Bhargav

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:00:07