From c660e88cd835a7fd2c22f0f3c1be268083a6cea2 Mon Sep 17 00:00:00 2001
From: "i.nueske" <i.nueske@indiscale.com>
Date: Wed, 5 Mar 2025 20:40:37 +0100
Subject: [PATCH] CI: Add python 3.14 to tests

---
 .gitlab-ci.yml | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f3000856..b202baf2 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
-- 
GitLab