diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b315d11da87125cf32863bffe21bc71bc672c699
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,37 @@
+---
+stages:
+  - tox
+
+####################################  tox   -   Testing and linting
+run-tox-pipeline:
+  stage: tox
+  tags:
+    - docker-executor
+  image: python:3.10
+
+  # Change pip's cache directory to be inside the project directory since we can
+  # only cache local items.
+  variables:
+    PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
+
+  # Pip's cache doesn't store the python packages
+  # https://pip.pypa.io/en/stable/topics/caching/
+  #
+  # If you want to also cache the installed packages, you have to install
+  # them in a virtualenv and cache it as well.
+  cache:
+    paths:
+      - .cache/pip
+
+  before_script:
+    - pip install venv
+    - python -m venv venv
+    - . venv/bin/activate
+
+  script:
+    - pip install tox
+    - tox
+
+  artifacts:
+    paths:
+      - htmlcov