如何在不推送新提交的情况下重新启动 GitHub 检查?

93

我目前在使用基本的Jenkins和GitHub插件集成:每次我推送代码时,我的Jenkins测试会被触发,并将状态报告给GitHub。

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

你知道是否有可能在不提交新代码的情况下重新启动测试吗?因为如果我重新启动测试,它们将通过。

6个回答

86

更新:你也可以向分支推送一个空提交以重新触发状态检查:git commit -m "retrigger checks" --allow-empty 然后 git push <branchname>

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


3
看起来它能工作!但我想知道是否有更好的方法来做这件事 :) - Labynocle
真的!这感觉像是一种奇怪的方式 :) - Adil B
1
在我的情况下,使用AWS CodeBuild,关闭并重新打开PR似乎不起作用,但实际上是可以的。只需要等待几分钟以便状态更新。黄色进度指示器没有显示。 - user6269864
目前使用 Github Actions 会启动新的检查,但即使它成功了,之前失败的状态检查也不会被移除,这会阻止合并操作,如果需要通过测试才能合并的话。Georgi 上面提到的 git amend 方法可以完全重置检查。 - Roman Scher

46

执行git commit --amend和强制推送会使GitHub重新触发所有检查。这并不完美,但比关闭然后重新打开拉取请求要好。


5
确保在强制推送之前没有人已经拉取了你最后一次提交,否则大家都会遇到麻烦。 - Scott Schupbach
3
就其价值而言,这种方法有效是因为提交日期/时间是提交哈希的输入。因此,Git(和GitHub)将识别此提交为新提交,即使文件内容没有更改。 - t-mart

14

Github的用户界面现在有一个重新运行检查的按钮。不确定它是否适用于Jenkins,但对于我的情况它起作用了。

在此输入图片描述


2
这个“重新运行检查”似乎没有考虑到在PR打开后主分支上所做的更改。 - Maarten Derickx
它在我的 Jenkins 上运行良好。 - RAM237

11

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

enter image description here


2
仅供内部(Jenkins)检查,不得外传。 - nhed
Or Debricked漏洞分析。 - XedinUnknown

2

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

例如,在Github中发表“请测试此内容”或“请重新测试此内容”的评论可能会重新触发Jenkins。


1
你有什么示例可以建议吗?我正在使用基本的Jenkins集成(与Github插件一起)。 - Labynocle
如果我没记错的话,Github 有一个单独的 Jenkins 插件用于 Pull Request,建议您首先查看该插件。我想到了 https://wiki.jenkins.io/plugins/servlet/mobile?contentId=63930613#content/view/63930613,但是它似乎有更新版本。 - Cleared

-4

看起来关闭并重新打开PR可能是一个选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接