【问题标题】:Travis-CI doesn't let me rebuild a testTravis-CI 不允许我重建测试
【发布时间】:2020-02-14 23:52:34
【问题描述】:

我们正在使用 Travis-CI 来测试我们的项目 (Speedy Net)。 test 失败,我想重建它。我检查了this answer,但它对我不起作用。这种情况最近发生了变化。 I'm the owner of this organization on GitHub 但在 Travis CI I'm not a member of any organization 上。在这个版本的页面I don't have any rebuild button。我该怎么做才能重建这个测试?

Travis CI for Open Source

【问题讨论】:

  • 如果故障没有被修复/提交/推送到仓库,重建的意义何在?如果测试失败,这意味着被测试的代码中必须存在错误,或者执行测试的代码中必须存在错误。如果您已经修复了错误/问题,那么只需提交并推送这些更改,Travis-CI 将再次为新提交运行所有测试。
  • @ChristosLytras 在某些情况下,测试可能会失败,但再次运行时会通过。我认为在这种情况下就是这种情况,因为测试仅在一个版本的 Python (3.5) 上失败,而且我也认为它在另一个分支上的相同提交通过。
  • 过去我有一个similar problem,这不是 TravisCI 的错误。 Python 在不同版本之间存在一些差异。但是我在您的情况下看到 ProtocolError: ("Connection broken: ConnectionResetError(104, 'Connection reset by peer')" 错误可能与软件包版本有关,但在极少数情况下也可能与 CI 服务器网络故障有关。
  • @ChristosLytras 在这种情况下,您可以在这里看到例如travis-ci.org/speedy-net/speedy-net/builds/639409564,这个具有相同提交的测试通过了。有时测试由于随机原因而失败,但再次运行测试时它通过了。

标签: github travis-ci


【解决方案1】:

现在可以使用(在我的登录过期并再次登录后)。当通过 GitHub 登录 Travis CI 过期时,无法重建测试。

【讨论】:

  • 我也需要清除浏览器缓存。
【解决方案2】:

这取决于,如果测试是通过拉取请求触发的,那么它就像关闭然后重新打开拉取请求一样简单。

如果您以其他方式触发测试,请再次执行该操作,例如push --force-with-lease、commit --allow-empty 等以重新启动进程。

基本上,如果构建失败,例如,主机在测试/构建设置中暂时无法访问,而不是代码存在任何问题,则以与最初相同的方式再次触发构建。

【讨论】:

  • 重建测试不应该需要对存储库进行更改(例如提交或推送)。没有与此测试相关的拉取请求。
  • 这取决于构建的触发方式。如果测试设置为通过提交/推送运行 - 那么执行该操作可能是(务实地)唯一可行的选择,即使它不应该(直观地,从最佳实践点)是理想的。例如git commit --allow-empty
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多