NOTE: Laika is an archived project and there are some other alternatives you can use instead:

Continuous Integration

Continuous Integration support for Laika and Meteor can be added very easily. Laika can be configured to use with Cloud Services and Self Hosted Solutions.

If you are looking for a how to guide, check out MeteorHacks article on Continuous Integration for Meteor Apps

With Travis CI

add following content to your project as .travis.yml

language: node_js
  - "0.10"
  - "curl -L | /bin/sh"
  - mongodb
  - LAIKA_OPTIONS="-t 5000"

With CodeShip

Select your technology as nodejs

Replace setup commands with following

git clone ~/meteor
export PATH=~/meteor/:$PATH
npm install -g meteorite laika

Replace test commands with following

METEOR_PATH=~/meteor laika -t 5000
I’ve added codeship support for hello-laika as well.

For others

There are lots of other Continuous Integration services and downloaded servers out there. It is not feasible to provide how-to guides for all. Let’s discuss in general how to add laika support for them.

All of these tools and services provide a way to customize their runtime and the test. Most of the time we can configure them using shell scripts. We can categorize them into two. Tools which: * Give configuration scripts ROOT access. * Don’t give configuration scripts ROOT access.

Laika can be configured for both very easily. Let’s look at how.

  • Assume you’ve configured or installed nodejs
  • Assume there is a local mongodb server is running
  • Assume phantomjs is installed and available on the path

With ROOT access

#install meteor normally
curl | /bin/sh

#installing meteorite and laika
npm install -g meteorite laika

#run tests
laika #<options>

Without ROOT access

#install meteor from git
git clone ~/meteor
export PATH=~/meteor/:$PATH

#install meteorite and laika
npm install -g meteorite laika

#run tests
METEOR_PATH=~/meteor laika -t 5000

I hope with this information, you could setup your meteor app for Continuous Integration very easily. Let me know how you think about this, share your experiences.

Fork me on GitHub