diff --git a/.gitignore b/.gitignore
index 0d14ca4dd081d5d9be6e064a717f862bab407cb1..9f28e5cb447949081556e27b2b1702613de93bbc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
 __pycache__
 *.db
 */env
-*.coverage
\ No newline at end of file
+*.coverage
+.pytest_cache
\ No newline at end of file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3711fef4d53be79abfb66f0e33bae1fb000d4ddc
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,6 @@
+stages:
+  - setup
+  - test
+
+inlclude:
+  - local: .gitlab/server.gitlab-ci.yml
diff --git a/.gitlab/server.gitlab-ci.yml b/.gitlab/server.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1c47b3cbe1f4d46f727c8dfbcecaba6dd44dfaec
--- /dev/null
+++ b/.gitlab/server.gitlab-ci.yml
@@ -0,0 +1,19 @@
+image: python
+
+cache:
+  paths:
+    - server/venv/
+
+before_script:
+  - python --version
+  - pip install virtualenv
+  - cd server/
+  - python -m venv env
+  - source env/bin/activate
+
+server-test:
+  stage: test
+  script:
+    - cd server
+    - source env/bin/activate
+    - pytest --cov app tests/