diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2cc380560bf04effcb83b01834bd1626b4279261
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,28 @@
+default:
+    image: python:3.10
+
+stages:
+    - build
+    - deploy
+    - pages
+
+before_script:
+    - python -V
+    - pip install virtualenv
+    - virtualenv venv
+    - source venv/bin/activate
+    - pip install build twine
+
+build:
+    stage: build
+    script: 
+        - python -m build
+    artifacts:
+        paths:
+            - dist/*.whl
+        expire_in: 2 days
+
+deploy:
+    stage: deploy
+    script:
+        - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python -m twine upload --repository gitlab dist/* --verbose