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

Mei*_*wjn 6 github jenkins jenkins-plugins jenkins-pipeline

https://issues.jenkins.io/browse/JENKINS-70459中也描述了此问题

\n

使用 Jenkins 时,我们注意到 GitHub PR 中经常报告错误的管道状态。

\n

进一步的调查显示出非常奇怪的行为。我们还没有找到这个问题的原因(随机?)。\n检查失败

\n

“详细信息”链接导致构建成功。

\n

现在出现了奇怪的事情:Jenkins 日志显示相同的构建 ID 被构建了两次!

\n

首先,它运行成功(触发:PR 更新)。以下是日志的摘录:

\n
{ [-]\n\xc2\xa0 \xc2\xa0build_number: 2\n\xc2\xa0 \xc2\xa0build_url: job/(...)/PR-2906/2/\n\xc2\xa0 \xc2\xa0event_tag: job_event\n\xc2\xa0 \xc2\xa0job_duration: 1108.635\n\xc2\xa0 \xc2\xa0job_name: (...)/PR-2906\n\xc2\xa0 \xc2\xa0job_result: SUCCESS\n\xc2\xa0 \xc2\xa0job_started_at: 2023-01-19T14:41:14Z\n\xc2\xa0 \xc2\xa0job_type: Pipeline\n\xc2\xa0 \xc2\xa0label: master\n\xc2\xa0 \xc2\xa0metadata: { [+]\n\xc2\xa0 \xc2\xa0}\n\xc2\xa0 \xc2\xa0node: (built-in)\n\xc2\xa0 \xc2\xa0queue_id: 1781283\n\xc2\xa0 \xc2\xa0queue_time: 5.063\n\xc2\xa0 \xc2\xa0scm: git\n\xc2\xa0 \xc2\xa0test_summary: { [+]\n\xc2\xa0 \xc2\xa0}\n\xc2\xa0 \xc2\xa0trigger_by: Pull request #2906 updated\n\xc2\xa0 \xc2\xa0type: completed\n\xc2\xa0 \xc2\xa0upstream:\n\xc2\xa0 \xc2\xa0user: anonymous\n}  \n
Run Code Online (Sandbox Code Playgroud)\n

然后,在日志中显示完全相同的构建 id/url 下的另一次运行:

\n
{\n\xc2\xa0 \xc2\xa0build_number: 2\n\xc2\xa0 \xc2\xa0build_url: job/(...)/PR-2906/2/\n\xc2\xa0 \xc2\xa0event_tag: job_event\n\xc2\xa0 \xc2\xa0job_duration: 1.959\n\xc2\xa0 \xc2\xa0job_name: (...)/PR-2906\n\xc2\xa0 \xc2\xa0job_result: FAILURE\n\xc2\xa0 \xc2\xa0job_started_at: 2023-01-20T07:14:50Z\n\xc2\xa0 \xc2\xa0job_type: Pipeline\n\xc2\xa0 \xc2\xa0label: master\n\xc2\xa0 \xc2\xa0node: (built-in)\n\xc2\xa0 \xc2\xa0queue_id: 2261495\n\xc2\xa0 \xc2\xa0queue_time: 7.613\n\xc2\xa0 \xc2\xa0test_summary: { [+]\n\xc2\xa0 \xc2\xa0}\n\xc2\xa0 \xc2\xa0trigger_by: Branch indexing\n\xc2\xa0 \xc2\xa0type: completed\n\xc2\xa0 \xc2\xa0upstream:\n\xc2\xa0 \xc2\xa0user: anonymous\n} \n
Run Code Online (Sandbox Code Playgroud)\n

请注意,触发器现在是“分支索引”。我们不知道为什么会发生此构建,但这可能是此问题的根本原因。

\n

失败的构建不会显示在 Jenkins UI 中,脚本控制台也会返回 #2 作为最后一次成功的构建。我们假设此“损坏”构建已报告给 GitHub。有谁知道这会如何发生?任何想法都非常受欢迎!

\n

我们检查了日志并尝试重现此行为 - 到目前为止尚未成功。

\n

小智 0

\xc2\xbf您是否使用多分支管道插件?

\n
\n

默认情况下,Jenkins 不会自动为分支添加或删除重新索引存储库(除非使用组织文件夹),因此配置多分支管道以在配置中定期重新索引通常很有用

\n
\n

来源: https: //www.jenkins.io/doc/book/pipeline/multibranch/

\n

也许这也可以帮助:What are "Branch indexing" events in Jenkins BlueOcean

\n