add ci configuration

Signed-off-by: Karol Gugala <kgugala@antmicro.com>
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..0a1062c
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,19 @@
+language: python
+
+matrix:
+  include:
+    - python: 2.7
+      env: TOXENV=py27
+    - python: 3.4
+      env: TOXENV=py34
+    - python: 3.5
+      env: TOXENV=py35
+    - python: 3.6
+      env: TOXENV=py36
+
+install: pip install tox
+
+script: tox
+
+notifications:
+  email: false
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 0000000..4db88ab
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,31 @@
+[tox]
+envlist = py{27,34,35,36,37}
+
+[testenv]
+setenv =
+    PYTHONPATH={toxinidir}/v2x
+basepython =
+    py27: python2.7
+    py34: python3.4
+    py35: python3.5
+    py36: python3.6
+    py37: python3.7
+deps =
+    check-manifest
+    # If your project uses README.rst, uncomment the following:
+    # readme_renderer
+    flake8
+    pytest
+    lxml
+commands =
+    check-manifest --ignore tox.ini,tests*
+    # This repository uses a Markdown long_description, so the -r flag to
+    # `setup.py check` is not needed. If your project contains a README.rst,
+    # use `python setup.py check -m -r -s` instead.
+    python setup.py check -m -s
+    # in sdfyacc.py we need to import sdflex.tokens, which are implicitly
+    # used by parser. This triggers flake8 error. Let's ignore this for now.
+    flake8 .
+[flake8]
+exclude = .tox,*.egg,build,data
+select = E,W,F