diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f300085686c74b6940360cf841703afd2bab19c1..b202baf26457d5276a8a1cb1c5b08b26f8170388 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -162,6 +162,28 @@ unittest_py313:
   image: python:3.13
   script: *python_test_script
 
+unittest_py314:
+  allow_failure: true   # remove on release
+  tags: [docker]
+  stage: unittest
+  image: python:3.14-rc
+  script:               # replace by '*python_test_script' on release
+    # Install cargo manually, source its env, and set it to accept 3.14 as interpreter
+    - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
+    - . "$HOME/.cargo/env"
+    - export PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1
+    # Install hdf5 dependencies
+    - apt-get update -y
+    - apt-get install -y pkg-config libhdf5-dev
+    # Install packages
+    - pip install --break-system-packages git+https://gitlab.indiscale.com/caosdb/src/caosdb-pylib.git@dev
+    - pip install --break-system-packages .[all]
+    # Force pytest to current version as 6.x is incompatible with 3.14
+    - pip install --upgrade pip
+    - pip install pytest==8.3.4
+    # Run tests
+    - pytest --cov=caosadvancedtools unittests
+
 # Build the sphinx documentation and make it ready for deployment by Gitlab Pages
 # Special job for serving a static website. See https://docs.gitlab.com/ee/ci/yaml/README.html#pages
 pages_prepare: &pages_prepare