diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 12aa2a85b80297bccc24e6b80a269343764606c9..5d30a98695b59fc4214dca18f9b01ee4ff57a674 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -56,26 +56,6 @@ fmt_and_clippy:
     - cargo fmt -- --check
     - cargo clippy -- -V
     - cargo clippy --all --tests -- -D warnings
-
-build_debug:
-  extends: .env
-  rules:
-    - if: $CI_COMMIT_TAG
-      when: never
-    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_BRANCH == "master"'
-      changes:
-      - Cargo.lock
-    - when: never
-  stage: build
-  script:
-    - cargo clean -p duniter
-    - cargo build --locked
-    - mkdir build
-    - mv target/debug/duniter build/duniter
-  artifacts:
-    paths:
-      - build/
-    expire_in: 3 day
   cache:
     - key:
         files:
@@ -84,22 +64,18 @@ build_debug:
         - target/debug
       policy: push
 
-build_debug_with_cache:
+build_debug:
   extends: .env
   rules:
-    - changes:
-      - Cargo.lock
-      when: never
     - if: $CI_COMMIT_TAG
       when: never
     - if: '$CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_BRANCH == "master"'
+      changes:
+      - Cargo.lock
     - when: never
   stage: build
   script:
-    - cargo clean -p duniter
     - cargo build --locked
-    - mkdir build
-    - mv target/debug/duniter build/duniter
   artifacts:
     paths:
       - build/
@@ -169,6 +145,13 @@ tests_debug:
     - cd target/debug/deps/
     - rm cucumber_tests-*.d
     - mv cucumber_tests* ../../../build/duniter-cucumber
+  cache:
+    - key:
+        files:
+          - Cargo.lock
+      paths:
+        - target/debug
+      policy: pull
   artifacts:
     paths:
       - build/