diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..28ba97db5f5ba86e21c24c846b299acf79ad51d0
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,29 @@
+language: cpp
+compiler:
+  - clang
+  - gcc
+script: "./.travis/build"
+before_install:
+  - git submodule update --init --recursive
+  - sudo apt-get update -qq
+  - sudo apt-get install -qq doxygen doxygen-latex libboost-all-dev libeigen3-dev
+  - sudo pip install cpp-coveralls --use-mirrors
+after_success:
+  - coveralls -e _travis/install -e tests
+  - git config --global user.name "Travis CI"
+  - git config --global user.email "thomas.moulard+travis@gmail.com"
+  - git remote set-url origin https://thomas-moulard:${GH_TOKEN}@github.com/stack-of-tasks/dynamic-graph.git
+  - git fetch origin gh-pages:gh-pages
+  - cd _travis/build/doc && ../../../cmake/github/update-doxygen-doc.sh
+notifications:
+  email:
+    - hpp-source@laas.fr
+branches:
+  only:
+    - master
+matrix:
+  allow_failures:
+    - compiler: clang
+env:
+  global:
+    secure: "Slm+HqRT+Vy0SG7E9gEShuHvNz6XWRUmBhVBLVJEaYy/0Lo2qp4OjFEWDjiJwFIiXstW2Wclds4SuewAn3Tc4x7dsY+5uaMCX7S/HPzsBCjLXUwjKasUqEGaVTIYmtFJm57hOkz6K2SLUUV4intkMiwtCiq/R0xe92QTTKkHyfo="
diff --git a/.travis/build b/.travis/build
new file mode 100755
index 0000000000000000000000000000000000000000..9a55f232c72712149ae0856e843907a88d7e6dfc
--- /dev/null
+++ b/.travis/build
@@ -0,0 +1,48 @@
+#!/bin/sh
+set -ev
+
+# Directories.
+root_dir=`pwd`
+build_dir="$root_dir/_travis/build"
+install_dir="$root_dir/_travis/install"
+jrl_mathtools_dir="$build_dir/jrl-mathtools"
+jrl_mal_dir="$build_dir/jrl-mal"
+
+# Shortcuts.
+git_clone="git clone --quiet --recursive"
+
+# Create layout.
+rm -rf "$build_dir" "$install_dir"
+mkdir -p "$build_dir"
+mkdir -p "$install_dir"
+
+# Setup environment variables.
+export LD_LIBRARY_PATH="$install_dir/lib:$LD_LIBRARY_PATH"
+export PKG_CONFIG_PATH="$install_dir/lib/pkgconfig:$PKG_CONFIG_PATH"
+
+# Retrieve jrl-mathtools
+echo "--> Compiling jrl-mathtools"
+cd "$build_dir"
+$git_clone "git://github.com/jrl-umi3218/jrl-mathtools.git"
+cd "$jrl_mathtools_dir"
+cmake . -DCMAKE_INSTALL_PREFIX:STRING="$install_dir"
+make install
+
+# Retrieve jrl-mal
+echo "--> Compiling jrl-mal"
+cd "$build_dir"
+$git_clone "git://github.com/jrl-umi3218/jrl-mal.git"
+cd "$jrl_mal_dir"
+cmake . -DCMAKE_INSTALL_PREFIX:STRING="$install_dir"
+make install
+
+# Compile metapod and run tests
+cd "$build_dir"
+cmake "$root_dir" -DCMAKE_INSTALL_PREFIX="$install_dir"		\
+		  -DCMAKE_CXX_FLAGS="--coverage"		\
+		  -DCMAKE_EXE_LINKER_FLAGS="--coverage"		\
+		  -DCMAKE_MODULE_LINKER_FLAGS="--coverage"	\
+		  -DCMAKE_INSTALL_PREFIX:STRING="$install_dir"
+make
+make test
+make install
diff --git a/README.md b/README.md
index 331f5ef7c855acccb4a4e0b819b5c4dddaf9becd..18dc577a2421d980f4a8279bbeae996677bf4305 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,10 @@
 dynamic-graph
 =============
 
+[![Build Status](https://travis-ci.org/stack-of-tasks/dynamic-graph.png)](https://travis-ci.org/stack-of-tasks/dynamic-graph)
+[![Coverage Status](https://coveralls.io/repos/stack-of-tasks/dynamic-graph/badge.png)](https://coveralls.io/r/stack-of-tasks/dynamic-graph)
+
+
 This software provides an efficient way to modelize a C++ data-flow.
 
 A dynamic graph data-flow is composed of: