Travis CI is a wonderful Berlin-based continuous integration platform. It is free for open source projects, which is also wonderful!

Travis CI also integrates seemingly with GitHub. Every Pull request sent to a registered repository is being built by travis and an indication whether or not the build passed is displayed directly on the GitHub pull request page. Notice the little green check mark on the closed pull requests.

Travis has an extensive language/framework support. As it supports NodeJS/NPM, it also supports Gulp, which is the building tool used in BabylonJS, together with visual studio till BabylonJS 2.0, exclusively since 2.1.

Initially I thought it would be a relatively hard task integrating both, but it was really apiece of cake. Travis' documentation page is full of helpful tips and explanations. I eventually didn't need anything more than putting this YAML file in the main directory of the repository:

language: node_js  
node_js:  
  - "0.10"
before_script:  
  - npm install -g gulp
  - cd ./Tools/Gulp
  - npm install
script: gulp typescript  

npm is installing gulp globally, then installing the dependencies defined in the package.json located in /Tools/Gulp of the main repository. Afterwards it is using gulp typescript to execute the typescript build process. If the process returns no error (my assumption - returns a 0 exit status), Travis is happy and returns a green mark. The build process and log is also available at https://travis-ci.org/BabylonJS/Babylon.js
This happens with EACH pull request. This is quite amazing that Travis-CI actually assign computing capacity for open source projects and tests each pull request (and every branch!).

The next step for BabylonJS would be to integrate an auto-testing javascript framework and running unit tests during the building process. This can be done using Jasmine inside gulp. I wonder if Karma can be used for webgl testing!
At the moment travis is checking if the typescript code compiles. Which is the first and initial step towards successful build. BabylonJS currently has no tests integrated, would be quite a task right now, since the framework develops so rapidly. But I really do believe it is an important task.

Connect with me on Twitter or LinkedIn to continue the discussion.

I'm an IT consultant, full stack developer, husband, and father. On my spare time I am contributing to Babylon.js WebGL game engine and other open source projects.

Berlin, Germany