Yes, all our code is in single repo. I know there is a religious debate whether orgs should put their different components in multiple or single repos - we went with latter so we could write cleaner full-stack integration tests without having to checkout multiple repos

Here is what our repo looks like:

root/

server/ - backend scala play server

weabpp/ - front end angular app

ios/ objective-c ios app

android/ java android app

integration/ python scripts that run android/ios integration tests

Right now, it is very hard for us to use travis since it expects one single language/environment. If you could support multiple languages it would be great.

My suggestions: the top-level .travis.yml file can either be a single language file or point to more children file e.g. I would like my top-level .travis.yml file to look like these

I agree exactly with Pathikrit - his syntax would work great for us at Snowplow. We have a master repo (snowplow/snowplow) which has a variety of sub-components which are each completely standalone, with individual test suites; components are Scala, Clojure, JavaScript.

Here is what our repo looks like:

root/

1-trackers/ - set of submodule'd in event trackers (with own Travis test suites, that's fine) 2-collectors/ - set of event collectors, including one in Scala and one in Clojure 3-enrich/ - set of separate Scala projects 4-storage/ - SQL, no tests 5-analytics/ - SQL and YAML, no tests

Pathikrit's idea of a parent .travis.yml linking to child files in individual sub-folders would work great for us. At the moment Travis works great for people who have monolithic single-repo architectures or are making exclusive use of git submodules but not for people with loosely-coupled component architectures in single repos...

As a bonus feature, it would be great if we could have a way of embedding Travis buttons in the subdirectories' READMEs - so you could see at a glance the build status of the individual subcomponents...