From db7d54e944e0280fdf885e63fec538595ab250bb Mon Sep 17 00:00:00 2001
From: Geoffrey Arthaud <geoffrey.arthaud@developpement-durable.gouv.fr>
Date: Tue, 16 Jul 2024 23:02:32 +0200
Subject: [PATCH] Separate deps fetching and linting + remove useless tasks

---
 .gitlab-ci.yml | 32 ++++++++++++++++++++++----------
 1 file changed, 22 insertions(+), 10 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c509ca8..723c0d4 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}
@@ -89,11 +94,16 @@ test-rust-current:
     - cargo run -- $TEST_OPTIONS --token $TEST_GL_TOKEN
     - cargo run -- $CLEAN_OPTIONS
     - cargo run -- $CLEAN_OPTIONS --token $TEST_GL_TOKEN
+  rules:
+    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
 
 test-rust-nightly:
   extends: test-rust-current
   image: rustlang/rust:nightly
   allow_failure: true
+  rules:
+    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
 
 .rust-release:
   image: ${RUST_IMAGE}:${RUST_VERSION}
@@ -108,11 +118,6 @@ test-rust-nightly:
     - export VERSION=${CI_COMMIT_TAG:-latest}
     - echo "VERSION=${VERSION}" > release.env
     - 'if [ -z "$DEBUG" ]; then curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file $TARGET "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/$TARGET_ARCH/${VERSION}/$APP_NAME"; fi'
-  artifacts:
-    paths:
-      - $TARGET
-    reports:
-      dotenv: release.env
   allow_failure: true
   rules:
     - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
@@ -130,6 +135,11 @@ release-linux:
   before_script:
     - apt update -y
     - apt install -y musl-dev musl-tools build-essential
+  artifacts:
+    paths:
+      - $TARGET
+    reports:
+      dotenv: release.env
 
 release-macos-silicon:
   extends: .rust-release
@@ -162,6 +172,8 @@ release-windows:
   before_script:
     - apt-get update
     - apt-get install -y lld gcc-mingw-w64-x86-64
+  rules:
+    - if: $CI_COMMIT_TAG
 
 test-release-docker:
   stage: deploy_test
-- 
GitLab