【问题标题】:How to relaunch GitHub check without pushing new commits?如何在不推送新提交的情况下重新启动 GitHub 检查?
【发布时间】:2019-02-23 18:57:07
【问题描述】:

我目前正在使用带有基本 Jenkins 集成(使用 GitHub 插件)的 GitHub:每次我推送某些内容时,都会触发我的 Jenkins 测试并将状态报告给 GitHub。

由于一些肮脏的原因(我知道根本原因就在这里),我的测试可能会随机失败,然后向 GitHub 报告失败状态(这阻止了合并 PR 的可能性:这是预期的行为)。

您知道是否可以在不推送新提交的情况下重新启动测试?因为我知道如果我重新启动测试,它们就会通过。

【问题讨论】:

    标签: jenkins github triggers pull-request


    【解决方案1】:

    更新:您还可以将空提交推送到您的分支以重新触发状态检查:git commit -m "retrigger checks" --allow-empty 然后git push <branchname>

    您可以通过关闭然后重新打开拉取请求来执行此操作。这将导致所有状态检查在同一提交上再次运行。

    【讨论】:

    • 它似乎工作!但我想知道是否有更好的方法:)
    • 真的!这确实感觉是一种奇怪的方式:)
    • 在我使用 AWS CodeBuild 的情况下,似乎关闭和重新打开 PR 不起作用,但实际上确实如此。只需等待几分钟即可更新状态。黄色进度指示器未显示。
    • 目前使用 github 操作会启动新的检查,但即使成功,也不会删除先前失败的状态检查,如果需要通过则阻止合并。上面 Georgi 的 git amend 方法会导致检查完全重置。
    【解决方案2】:

    执行git commit --amend 并强制推送会使 github 重新触发所有检查。不完美,但比关闭然后重新打开 PR 更好。

    【讨论】:

    • 只要确保没有人在强制推送之前拉出你的最后一次提交,否则你们都会过得很糟糕。
    • 不管怎样,这个方法是有效的,因为提交日期/时间是提交哈希的输入。因此,即使文件内容没有改变,Git(和 GitHub)也会将此提交识别为新提交。
    【解决方案3】:

    现在 Github UI 中有一个按钮可以重新运行检查。不确定它是否适用于 Jenkins,但它适用于我的情况。

    【讨论】:

    • 这个“重新运行检查”似乎没有考虑到pr打开后在主分支上所做的更改。
    • 它适用于 Jenkins。
    【解决方案4】:

    如果您打开失败的 PR,在 Checks 选项卡下,您将看到对您的 PR 执行的所有检查的列表。在失败的旁边,会有一个可点击的文字,上面写着“重新运行”

    【讨论】:

    • 不适用于外部 (Jenkins) 检查
    【解决方案5】:

    根据您将 Github 与 Jenkins 集成的方式以及您使用的插件,方法可能会有所不同。但通常你支持“神奇”的句子,如果添加为 Github 上的评论,它将重新触发 Jenkins。

    例如,在 Github 中评论“请测试这个”或“请重新测试这个”可能会重新触发 Jenkins。

    【讨论】:

    • 你有什么例子可以推荐吗?我正在使用基本的 Jenkins 集成(使用 Github 插件)
    • 如果我没记错的话,Github 中有一个单独的用于 Pull Request 的 Jenkins 插件,我建议你先研究一下。我正在考虑wiki.jenkins.io/plugins/servlet/…,但它看起来有一个更新的版本。
    【解决方案6】:

    似乎关闭并重新打开 PR 可能是一种选择。

    【讨论】:

      猜你喜欢
      • 2015-05-09
      • 1970-01-01
      • 2020-12-23
      • 2020-01-03
      • 2021-10-06
      • 2013-07-10
      • 2011-07-10
      • 1970-01-01
      • 2012-05-13
      相关资源
      最近更新 更多