diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 279dc5dd852cbeff13195c7e771b06c28a2b28a9..1d762c3231259a33e13dde14f8d6e0fb5635dc04 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,5 +1,14 @@
 image: "rust:latest"
 
+workflow:
+  rules:
+    - if: $CI_COMMIT_MESSAGE =~ /^(draft|no-ci):/
+      when: never
+    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
+    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
+      when: never
+    - if: ($CI_PIPELINE_SOURCE == "push") && ($CI_COMMIT_BRANCH == "master")
+
 format:
   script:
     - cargo fmt --all --check