diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5862cc5c589865ac6ecf410d1748621e77f0620a..5330fa640d16679ce5a709e83731f9d083213b18 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -46,23 +46,31 @@ prepare:
   artifacts:
     paths:
       - safelinks-cleaner-firefox.xpi
-  when: manual
 
 
 deploy:firefox:beta:
   extends: .deploy:firefox
   variables:
     CHANNEL: unlisted
-  only:
-    - beta
+  rules:
+    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "beta'
+    - changes:
+        - shared/**
+        - firefox/**
+    - when: always
+
 
 
 deploy:firefox:master:
   extends: .deploy:firefox
   variables:
     CHANNEL: listed
-  only:
-    - master
+  rules:
+    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "master'
+    - changes:
+        - shared/**
+        - firefox/**
+    - when: always
 
 
 deploy:thunderbird:
@@ -76,18 +84,17 @@ deploy:thunderbird:
   artifacts:
     paths:
       - safelinks-cleaner-thunderbird.xpi
-  when: manual
+  when: always
+  rules:
+    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "beta"'
+    - changes:
+        - shared/**
+        - thunderbird/**
+    - when: always
 
 
 pages:
   stage: deploy
-  needs:
-    - project: $CI_PROJECT_PATH
-      ref: $CI_COMMIT_SHA
-      job: deploy:thunderbird
-    - project: $CI_PROJECT_PATH
-      ref: $CI_COMMIT_SHA
-      job: deploy:firefox
   script:
     - cp -r site .public
     - sed -i -e "s/%BUILDDATE%/$(date +'%Y-%m-%d %H:%M')/g" .public/index.html
@@ -100,4 +107,4 @@ pages:
       - public/
   only:
     - beta
-  when: manual
+  when: always