jenkins 重复构建导致GitHub中的提交状态错误

o3imoua4  于 2023-02-03  发布在  Jenkins
关注(0)|答案(1)|浏览(198)
    • bounty将在3天后过期**。回答此问题可获得+50声望奖励。Meiswjn希望引起更多人关注此问题。

https://issues.jenkins.io/browse/JENKINS-70459中也描述了此问题
在使用Jenkins时,我们注意到GitHub PR中经常报告错误的管道状态。
进一步调查显示行为非常奇怪。我们尚未找到此问题的原因(随机?)。

"详细信息"链接指向成功的构建。
奇怪的是:Jenkins日志显示同一构建ID构建了两次!
首先,它运行成功(触发器:PR更新)。以下是日志摘录:

{ [-]
   build_number: 2
   build_url: job/(...)/PR-2906/2/
   event_tag: job_event
   job_duration: 1108.635
   job_name: (...)/PR-2906
   job_result: SUCCESS
   job_started_at: 2023-01-19T14:41:14Z
   job_type: Pipeline
   label: master
   metadata: { [+]
   }
   node: (built-in)
   queue_id: 1781283
   queue_time: 5.063
   scm: git
   test_summary: { [+]
   }
   trigger_by: Pull request #2906 updated
   type: completed
   upstream:
   user: anonymous
}
    • 然后,日志中出现完全相同的构建ID/url下的另一次运行:**
{
   build_number: 2
   build_url: job/(...)/PR-2906/2/
   event_tag: job_event
   job_duration: 1.959
   job_name: (...)/PR-2906
   job_result: FAILURE
   job_started_at: 2023-01-20T07:14:50Z
   job_type: Pipeline
   label: master
   node: (built-in)
   queue_id: 2261495
   queue_time: 7.613
   test_summary: { [+]
   }
   trigger_by: Branch indexing
   type: completed
   upstream:
   user: anonymous
}

请注意,触发器现在是"分支索引"。我们不知道为什么会发生这种构建,但它可能是这个问题的根本原因。
失败的构建不会显示在Jenkins UI中,脚本控制台也会返回#2作为最后一个成功的构建。我们假设这个"损坏"的构建会报告给GitHub。有人知道这是如何发生的吗?欢迎提出任何想法!
我们检查了我们的日志,并试图重现这种行为-到目前为止没有成功。

r8uurelv

r8uurelv1#

您是否正在使用多分支管道插件?
默认情况下,Jenkins不会针对分支添加或删除自动重新索引存储库(除非使用组织文件夹),因此在配置中配置Multibranch Pipeline以定期重新索引通常很有用
来源:https://www.jenkins.io/doc/book/pipeline/multibranch/
也许这也能有所帮助:What are "Branch indexing" activities in Jenkins BlueOcean

相关问题