diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4f0100970a632ab38ce62100300b60623d248833..b1bef6017a7a86bc997bf3487ec91087556207eb 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -6,6 +6,7 @@ stages:
   - collect
   - deploy
 
+
 version:
   image: python:3.7-stretch
   stage: version
@@ -97,7 +98,7 @@ build:thunderbird:beta:
         - shared/**
         - thunderbird/**
       when: always
-    - if: '$CI_COMMIT_MESSAGE =~ /#force-build:(all|firefox)/ && $CI_COMMIT_BRANCH == "beta"'
+    - if: '$CI_COMMIT_MESSAGE =~ /#force-build:(all|thunderbird)/ && $CI_COMMIT_BRANCH == "beta"'
       when: always
     - when: never
 
@@ -106,8 +107,16 @@ collect:
   stage: collect
   script:
     - echo "done"
-  when:
-    always
+  rules:
+    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "beta"'
+      changes:
+        - shared/**
+        - thunderbird/**
+        - firefox/**
+      when: always
+    - if: '$CI_COMMIT_MESSAGE =~ /#force-build:(all|firefox|thunderbird)/ && $CI_COMMIT_BRANCH == "beta"'
+      when: always
+    - when: never
 
 
 pages: