diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 69cb7195481af004f782b0baaff63b5bfc071c73_LmdpdGxhYi1jaS55bWw=..862e93be83cd2348b87801e526029f2dfd8a98db_LmdpdGxhYi1jaS55bWw= 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -34,7 +34,7 @@
     - if: '$CI_COMMIT_HG_BRANCH == "default"'
     - when: never
 
-.tests:
+.pytests:
   before_script:
     # TODO switch to clone/update (chainsaw), but a first attempt cloning
     # in ./py-heptapod led to shadowing problems and bad applied hg config.
@@ -50,7 +50,14 @@
   script:
     - ./run-all-tests
 
+tests-rust:
+  stage: main
+  image: ${BASE_IMAGES_COLLECTION}/hgitaly-rust:${CI_COMMIT_HG_BRANCH}
+  script:
+    - ci/prepare-rhgitaly
+    - cargo test --manifest-path rust/Cargo.toml
+
 tests-hg-current:
   variables:
     HGITALY_TESTS_HG_EXE_PATH: /usr/local/bin/hg
   extends:
@@ -53,10 +60,10 @@
 tests-hg-current:
   variables:
     HGITALY_TESTS_HG_EXE_PATH: /usr/local/bin/hg
   extends:
-    - .tests
+    - .pytests
   stage: main
   image: ${BASE_IMAGES_MERCURIAL}/hg-current:${BASE_IMAGES_TAG}
 
 gitaly-comparison:
   extends:
@@ -58,9 +65,9 @@
   stage: main
   image: ${BASE_IMAGES_MERCURIAL}/hg-current:${BASE_IMAGES_TAG}
 
 gitaly-comparison:
   extends:
-    - .tests
+    - .pytests
   stage: compat
   image: ${BASE_IMAGES_COLLECTION}/heptapod-gitaly:${CI_COMMIT_HG_BRANCH}
   variables: