diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c509ca88076ef2fba5b36cec8e4587e8d1563385..e1af142d29cfb592424b051a908cd29ca16ca4f7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -20,7 +20,7 @@ default:
     policy: pull
 
 stages:
-  - deps_and_lint
+  - prepare
   - build_test
   - release
   - deploy
@@ -67,19 +67,24 @@ release-gpd-image:
     - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
     - if: $CI_COMMIT_TAG
 
-check-format:
-  stage: deps_and_lint
+cache-dependencies:
+  stage: prepare
   image: ${RUST_IMAGE}:${RUST_VERSION}
   script:
     - cargo fetch
-    - cargo fmt --all -- --check
-    - cargo clippy -- -D warnings
   cache:
     key: rust-deps
     paths:
       - .cargo
     policy: pull-push
 
+check-format:
+  stage: build_test
+  image: ${RUST_IMAGE}:${RUST_VERSION}
+  script:
+    - cargo fmt --all -- --check
+    - cargo clippy -- -D warnings
+
 test-rust-current:
   stage: build_test
   image: ${RUST_IMAGE}:${RUST_VERSION}