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

try*_*out 76 git git-flow travis-ci

我是Git的新手,我计划在发现GitHub中的一个小错误之后为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,那好吗?在什么情况下最好使用它(或必须使用它)?

jos*_*son 90

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

  • 它说它对开源项目是“免费”的,但也说你的前 100 个版本是免费的。那么...它不是免费的吗?即使单独开发,我也可以很快完成 100 个构建。我读错了吗?到处都找不到任何信息。@约书亚安德森 (2认同)
  • 对于开源项目,它始终是免费的。对于私人存储库,您可以在需要注册付费计划之前获得 100 个免费构建。 (2认同)

Hem*_*ang 14

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

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

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


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

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


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

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


我写了一个博客帖子,你可以看了就知道,什么是特拉维斯-CI,持续集成和如何联系特拉维斯-CI与你的GitHub库.我已经为Swift存储库编写了它.