From 485e3c93d4fdd0290dd57133f539ed3c3f83256b Mon Sep 17 00:00:00 2001
From: Geoffrey Arthaud <geoffrey.arthaud@developpement-durable.gouv.fr>
Date: Mon, 25 Mar 2024 11:46:46 +0100
Subject: [PATCH] Update CI and validate syntax

---
 .gitlab-ci.yml                  | 25 ++++++++++++++++++++++++-
 Cargo.lock                      |  2 +-
 Cargo.toml                      |  2 +-
 src/diagnosis/pipeline_clean.rs |  4 ++--
 4 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 154b4be..519f2d6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -17,6 +17,7 @@ stages:
   - build_test
   - release
   - deploy
+  - deploy_test
 
 include:
   - remote: 'https://gitlab.com/r2devops/hub/-/raw/docker_build@2.0.2/jobs/docker_build/docker_build.yml'
@@ -34,7 +35,6 @@ check-format:
     - rustup component add clippy
     - cargo fmt --all -- --check
     - cargo clippy -- -D warnings
-  allow_failure: true
   rules:
     - if: $CI_COMMIT_REF_NAME == 'main'
     - if: $CI_PIPELINE_SOURCE == "merge_request_event"
@@ -128,6 +128,29 @@ docker_build:
   rules:
     - if: $CI_COMMIT_REF_NAME == 'main'
 
+test-release-docker:
+  stage: deploy_test
+  image: $CI_REGISTRY/pub/numeco/gitlab-project-doctor:$CI_COMMIT_SHA
+  script:
+    - gitlab-project-doctor --url $CI_PROJECT_URL -a
+  cache: [ ]
+  needs:
+    - docker_build
+  rules:
+    - if: $CI_COMMIT_REF_NAME == 'main'
+
+test-release-linux:
+  stage: deploy_test
+  image: curlimages/curl:8.6.0
+  needs:
+    - release-linux
+  script:
+    - 'curl -O --header "JOB-TOKEN: $CI_JOB_TOKEN" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/x86_64-unknown-linux-musl/latest/gitlab-project-doctor"'
+    - chmod +x gitlab-project-doctor
+    - ./gitlab-project-doctor --url $CI_PROJECT_URL -a
+  rules:
+    - if: $CI_COMMIT_REF_NAME == 'main'
+
 docker_build-prod:
   stage: deploy
   extends: docker_build
diff --git a/Cargo.lock b/Cargo.lock
index 28a7a16..8b368c7 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -703,7 +703,7 @@ dependencies = [
 
 [[package]]
 name = "gitlab-project-doctor"
-version = "0.4.0-dev"
+version = "0.4.0"
 dependencies = [
  "atty",
  "chrono",
diff --git a/Cargo.toml b/Cargo.toml
index 9e244bb..31333ba 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "gitlab-project-doctor"
-version = "0.4.0-dev"
+version = "0.4.0"
 edition = "2018"
 
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/src/diagnosis/pipeline_clean.rs b/src/diagnosis/pipeline_clean.rs
index 501d039..d08c1b7 100644
--- a/src/diagnosis/pipeline_clean.rs
+++ b/src/diagnosis/pipeline_clean.rs
@@ -6,10 +6,10 @@ use gitlab::api::{ApiError, Query};
 use gitlab::Gitlab;
 use human_bytes::human_bytes;
 
-use crate::{fl, Reportable, ReportPending, ReportStatus};
-use crate::diagnosis::{GITLAB_SCOPE_ERROR, RemedyJob};
 use crate::diagnosis::gitlab_connection::{Project, Statistics};
 use crate::diagnosis::pipeline_analysis::{GitlabPipeline, PipelineAnalysisReport};
+use crate::diagnosis::{RemedyJob, GITLAB_SCOPE_ERROR};
+use crate::{fl, ReportPending, ReportStatus, Reportable};
 
 pub struct PipelineCleanJob {
     pub pipeline_report: PipelineAnalysisReport,
-- 
GitLab