试图了解Travis CI的作用以及何时应该使用它

时间:2014-03-23 04:39:19

标签: git travis-ci git-flow

我是Git的新手,我计划在发现一个小错误之后为GitHub上的一些开源项目做出贡献。在分叉并修复错误后,我提出了一个拉取请求,我注意到了这一点:

  

失败 - Travis CI构建失败

查看详细信息,我发现它是由Could not find .travis.yml引起的,因为我没有使用Travis Cl登录并将.travis.yml添加到存储库,所以这非常有意义。

这是我第一次听说特拉维斯以及所谓的持续整合。这听起来很酷,所以为了更多地了解它,我在维基百科上查了一下。

  

Travis CI是一种托管的分布式持续集成服务   用于构建和测试GitHub上托管的项目。 Travis CI会自动检测何时提交并推送到使用Travis CI的GitHub存储库,每次发生这种情况时,它都会尝试构建项目并运行测试。这包括对所有分支的提交,而不仅仅是对主分支的提交。

我目前对Travis CI的理解是,它所做的是在git commit -am ".."上自动推动项目,我不太了解它的某些部分。

  1. 通过构建项目并运行测试,它将运行哪些测试?它如何“构建”该项目? (比如把它编译成二进制文件?)

  2. 它声明“这包括对所有分支的提交” - 但如果我不想承诺所有分支怎么办?

  3. 如果我根本不使用Travis Cl,那好吗?在什么情况下最好使用它(或必须使用它)?

3 个答案:

答案 0 :(得分:85)

解释Travis CI的最简单方法是每次提交GitHub时都会运行程序的测试(这可以通过多种方式进行配置,并且您始终可以在某些分支上禁用构建)。这一点的重点是,如果你的提交破坏了某些东西,你可以经常发现它,并在它成为问题之前修复它。我建议在每个GitHub回购中运行Travis CI,你有单元测试,并使用Travis CI支持的编程语言。由于设置Travis CI非常简单,我通常没有理由不使用它,除非你不关心你的程序是否通过了测试。如果您有任何疑问,请随时发表评论。您可以阅读有关Travis CI here的更多信息。

答案 1 :(得分:14)

正如您已经发现什么是Travis-CI,我会直接指出您的问题。

  

通过构建项目并运行测试,它将运行哪些测试?它如何“构建”该项目? (比如把它编译成二进制文件?)

.travis.yml文件中,您指定了操作系统,编程语言,回购分支,项目文件名和其他详细信息。通过阅读此文件,Travis-CI将使用安装在其服务器上的特定编译器来编译我们的代码。可能他们将拥有与Github相同的机制。他们第一次可以提取代码[如果我们指定了特定的分支,他们可能只从那些分支中提取代码]。此外,我们已经通过身份验证以使用我们的帐户与Travis-CI,每当我们提交时,应该有一些通知应该触发到Travis-CI服务器,因此它将被识别为提交并且它将开始编译。

  

它声明“这包括对所有分支的提交” - 但如果我不想承诺所有分支怎么办?

您可以指定不同的分支或master分支。它应该只编译.travis.yml文件中指定的特定分支。

  

如果我根本不使用Travis Cl,那好吗?在什么情况下最好使用它(或必须使用它)?

是的,没关系。没有大碍。但是,如果不将这种易于集成的引擎与您的仓库一起使用,您将会失去什么好处。每次你提交它可能会遗漏一些因为代码而无法编译。你怎么知道的?因此,您应该使用Travis-CI。

我写了一篇博客post,您可以阅读,知道什么是Travis-CI,持续集成以及如何将Travis-CI与您的Github Repo相关联。我已经为Swift存储库编写了它。

答案 2 :(得分:0)

我目前正在学习Travis CI,因此我很乐于回答您的问题。您首先遇到的第一个问题是,因为您正在贡献的项目正在使用Travis CI测试和构建该项目。如果项目未使用Travis CI,则不会遇到此类错误。

解决方案是结帐Travis CI website,并了解其工作方式以及它如何影响您正在进行的项目。这将使您处于一个很好的位置,以了解您的代码中出现了什么问题以及如何修复它。

回答有关构建项目的第一个问题。

  

通过构建项目并运行测试,它将运行什么测试?以及如何“构建”项目? (例如将其编译为二进制文件?)

这意味着在使用/测试之前如何处理源代码。这取决于您所使用的语言。例如,如果项目使用PHP编写。不会将我的代码构建到C / C ++源代码之类的可执行文件中。它将在PHP解释器上运行我的PHP代码并对其进行测试。仍然会按照您惯用的语言进行正常的编译过程。