目前在本地调试Travis构建的工作流程是什么?

40
曾经可以通过下载Vagrant boxes来调试Travis构建(例如GitHub项目)。显然,这已不再可能,那么人们目前如何在本地调试复杂的Travis构建链呢?

你链接的问题中的答案难道没有帮助吗? - Whymarrh
@Whymarrh:这似乎是一种临时的“解决方案”,依赖于Travis CI团队的可用性。通常,调试使用大量自动功能(例如coverity报告+文档上传)的Travis构建需要进行多个调试步骤,因此在您的计算机上拥有VM可以使事情变得更加容易,而且通常更快,因为构建本身可能需要半个小时以上。 - BenC
可能是如何重现用于调试的travis-ci构建环境的重复问题。 - Jonathan Hall
你为什么不将Travis置于调试模式并远程登录呢? - iconoclast
3个回答

7

检查构建的一种方法(不是调试,抱歉)是在失败时将构建日志发送到另一台服务器。

以下是一个示例:

after_failure
  - sudo tar -czf /tmp/build-${TRAVIS_BUILD_NUMBER}-logs.tgz your-application-logs/
  - scp /tmp/build-${TRAVIS_BUILD_NUMBER}-logs.tgz travis@your-server.com:~/logs

您可以通过电子邮件发送它们,存储在存储服务器上或任何其他方式。

如果您以调试模式运行测试并在tarball中包含我们自己的日志,那么这些日志对您非常有用。


7
我已经在Travis上检查了日志,这是我远程调试构建的方式,但修复构建需要为复杂错误盲目提交,并等待Travis服务器。对于复杂的构建链来说,这并不理想,因此我问及关于本地调试可能性的问题。 - BenC
所以你需要减少问题而不是寻找解决方案。尝试最小化构建时间和构建步骤(您可以将项目分成具有单独的Travis构建的单独存储库)。尽量让开发环境与Travis上的环境非常相似。 - Haralan Dobrev
这就是为什么在Travis系统中拥有虚拟机是本地调试构建的好方法。以前是可以的,但现在不行了,除非你准备在另一个虚拟机(例如Virtualbox)上复制完全相同的系统。 - BenC
@BenC 你可以使用他们的烹饪书,配合任何你喜欢的虚拟机。https://github.com/travis-ci/travis-cookbooks - Haralan Dobrev

6

很遗憾,目前没有好的解决方案来本地测试travis-ci构建。我能推荐的最接近的方法是使用Ubuntu 12.04 vagrant虚拟机,并使用这里的Travis chef cookbooks进行配置。这将解决大多数用例,因为大多数情况下测试失败不是由于travis软件(尽管当它是时,你会很烦恼,因为大多数travis软件依赖于其他travis软件部分,使其相当难以设置),而是由于底层操作系统(Ubuntu)和软件,如ruby和ruby gems。


3

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