diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 872e287436e6265a3c0e636793bdd2ac47bc69ef..53a05a2a7960daf275910618839be333ad61d136 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -6,7 +6,7 @@ stages:
 
 variables:
   DOCKER_IMAGE: "registry.duniter.org/docker/python3/poetry"
-  PYTHON_VERSION: "3.11"
+  PYTHON_VERSION: "3.12"
 
 image: $DOCKER_IMAGE/$PYTHON_VERSION:latest
 
@@ -135,7 +135,12 @@ tests:3.10:
   variables:
     PYTHON_VERSION: "3.10"
 
-tests:3.11:cov:
+unit_tests:3.11:
+  extends: .tests
+  variables:
+    PYTHON_VERSION: "3.11"
+
+tests:3.12:cov:
   extends: .tests
   coverage: '/(?i)total.*\s+(\d+%)/'
   script:
@@ -158,7 +163,7 @@ tests:3.11:cov:
   services:
     - docker:dind
   variables:
-    PYTHON_VERSION: "3.11"
+    PYTHON_VERSION: "3.12"
   script:
     - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
     - docker build --pull -t "$CI_REGISTRY_IMAGE/$CHANNEL/$ENV:$CI_COMMIT_SHORT_SHA" -f image/$ENV --build-arg PYTHON_VERS=$PYTHON_VERSION .
@@ -226,7 +231,7 @@ pypi:
 
 pages:
   extends: .changes
-  needs: ["tests:3.11:cov"]
+  needs: ["tests:3.12:cov"]
   rules:
     - if: $CI_COMMIT_BRANCH == "main"
   stage: coverage