diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index fcb0b8964c6b317d0f91125b9e0269668663ffed..a943f3a2368705158f34c6c56138c217c8cadecf 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -26,3 +26,4 @@ include:
   - local: '/src/l3_distributedattackdetector/.gitlab-ci.yml'
   - local: '/src/l3_centralizedattackdetector/.gitlab-ci.yml'
   - local: '/src/l3_attackmitigator/.gitlab-ci.yml'
+  - local: '/src/coverage/.gitlab-ci.yml'
diff --git a/src/coverage/.gitlab-ci.yml b/src/coverage/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..36ca7ccc83315294334f2d6673aeb9036656bace
--- /dev/null
+++ b/src/coverage/.gitlab-ci.yml
@@ -0,0 +1,16 @@
+# Report code coverage
+code coverage:
+  stage: coverage
+  needs:
+    - unit test monitoring
+  script:
+    - cd src
+    - ./coverage_report.sh
+  coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/'
+  rules:
+    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)'
+    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' 
+    - changes:
+      - src/monitoring/*
+      - manifests/*.yaml
+      - .gitlab-ci.yml
\ No newline at end of file
diff --git a/src/monitoring/.gitlab-ci.yml b/src/monitoring/.gitlab-ci.yml
index dd95706c7cd50fefca4a7e6f2f1f7782a665d738..22c221eb76cc4963f960d5de45c8eec4848cb81e 100644
--- a/src/monitoring/.gitlab-ci.yml
+++ b/src/monitoring/.gitlab-ci.yml
@@ -72,16 +72,6 @@ unit test monitoring:
       reports:
         junit: src/$IMAGE_NAME/tests/${IMAGE_NAME}_report.xml
         cobertura: src/$IMAGE_NAME/tests/${IMAGE_NAME}_coverage.xml
-
-# Report code coverage
-code coverage:
-  stage: coverage
-  needs:
-    - unit test monitoring
-  script:
-    - cd src
-    - ./coverage_report.sh
-  coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/'
  
 # Deployment of the service in Kubernetes Cluster
 deploy monitoring: