diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bdb2c7f4206e55a535eaf638272f2feca4d33bf8..64b861512165ea7692621a9f5745204167d51928 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,6 @@
 # Official language image. Look for the different tagged releases at:
 # https://hub.docker.com/r/library/python/tags/
-image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/python:3.6
+image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/python:latest
 
 # Change pip's cache directory to be inside the project directory since we can
 # only cache local items.
@@ -41,6 +41,36 @@ unit-test-job:
     reports:
       junit: nose2-junit.xml
 
+unit-test-3.7-job:
+  image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/python:3.7
+  stage: test
+  script:
+    - make test 2>&1 | tee errors-3.7.log
+  artifacts:
+    when: always
+    paths:
+      - errors-3.7.log
+
+unit-test-3.8-job:
+  image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/python:3.8
+  stage: test
+  script:
+    - make test 2>&1 | tee errors-3.8.log
+  artifacts:
+    when: always
+    paths:
+      - errors-3.8.log
+
+unit-test-3.9-job:
+  image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/python:3.9
+  stage: test
+  script:
+    - make test 2>&1 | tee errors-3.9.log
+  artifacts:
+    when: always
+    paths:
+      - errors-3.9.log
+
 pylint-test-job:
   stage: test
   script:
@@ -58,6 +88,27 @@ check-deprecation-warnings:
     - "if [[ $(grep DeprecationWarning errors.log) ]]; then cat errors.log; exit 1; fi"
   allow_failure: true
 
+check-deprecation-warnings-3.7:
+  before_script: []
+  stage: check-warnings
+  script:
+    - "if [[ $(grep DeprecationWarning errors-3.7.log) ]]; then cat errors-3.7.log; exit 1; fi"
+  allow_failure: true
+
+check-deprecation-warnings-3.8:
+  before_script: []
+  stage: check-warnings
+  script:
+    - "if [[ $(grep DeprecationWarning errors-3.8.log) ]]; then cat errors-3.8.log; exit 1; fi"
+  allow_failure: true
+
+check-deprecation-warnings-3.9:
+  before_script: []
+  stage: check-warnings
+  script:
+    - "if [[ $(grep DeprecationWarning errors-3.9.log) ]]; then cat errors-3.9.log; exit 1; fi"
+  allow_failure: true
+
 build-job:
   stage: build
   script: