diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f257c7b91a5fc6c6678da8a4f851609f68d97513..3304fbd248eed879b78b9aeed385cd14b0672264 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -103,7 +103,19 @@ build:edge:beta:
   extends: .build:edge
   variables:
     VARIANT: beta
-  <<: *beta_rules
+    - if: '$CI_COMMIT_TAG'
+      when: never
+    - if: '$CI_COMMIT_BRANCH != "master"'
+      when: never
+    - if: "$CI_COMMIT_MESSAGE =~ /#release/"
+      when: never
+    - if: '$CI_COMMIT_MESSAGE =~ /#force-build:(all|edge)/'
+      when: always
+    - changes:
+        - shared/**/*
+        - edge/**/*
+      when: always
+    - when: never
 
 build:edge:release:
   extends: .build:edge
@@ -152,6 +164,9 @@ build:firefox:beta:
         - firefox/**/*
       when: always
     - when: never
+  artifacts:
+    paths:
+      - safelinks-cleaner-thunderbird-$VARIANT.xpi
 
 build:firefox:release:
   extends: .build:firefox
@@ -181,7 +196,19 @@ build:thunderbird:beta:
   extends: .build:thunderbird
   variables:
     VARIANT: beta
-  <<: *beta_rules
+    - if: '$CI_COMMIT_TAG'
+      when: never
+    - if: '$CI_COMMIT_BRANCH != "master"'
+      when: never
+    - if: "$CI_COMMIT_MESSAGE =~ /#release/"
+      when: never
+    - if: '$CI_COMMIT_MESSAGE =~ /#force-build:(all|thunderbird)/'
+      when: always
+    - changes:
+        - shared/**/*
+        - thunderbird/**/*
+      when: always
+    - when: beta
 
 build:thunderbird:release:
   extends: .build:thunderbird