使用Travis-Ci测试多个子目录

时间:2017-03-27 06:20:03

标签: travis-ci

我想用Travis在一个回购中测试两个项目 GIT-repository的目录目前如下所示:


|
- 服务器应用程序
|
- 客户申请

我的服务器应用程序是使用Playframework构建的,客户端应用程序是为Android构建的。在我的例子中,将两个项目放在一个git-repository中更有意义,但我仍然想分别测试服务器和Android应用程序(或者至少为两个项目运行测试)。

我在这里看到的主要问题是:

  • PlayFramework使用SBT,Android使用Gradle。
  • 我不认为服务器应用程序将使用与客户端应用程序相同的测试框架。

1 个答案:

答案 0 :(得分:0)

我为解决这个问题所做的就是像往常一样拥有一个包含所有项目的master分支。但是我为每种构建类型创建分支。因此,例如,我有一个“ java”分支和一个“ android”分支。这些分支仅包含一个非常小的travis.yml,如以下Java分支:

language: java

install:
  - git config remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
  - git fetch
  - git checkout master

script: ./run_tests.sh java

现在,这基本上是将构建类型设置为“ java”。这意味着我已经安装了Java等。然后它将检出master分支(所有代码都存在于其中),并使用要构建的语言作为参数执行我的构建脚本“ ./run_tests.sh”。在这种情况下,Java。对于其他语言,我也有类似的分支。

这不是很漂亮,并且使流程自动化变得更加困难,但这是迄今为止我发现在Travis上构建具有不同技术堆栈的mono repo项目的唯一方法。