diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 879efbcec5ad50984fb24b598cb39658bac6f6eb..352d81cdebc60b9b30dfe0467e30e06473371d11 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -52,6 +52,8 @@ dist:
   rules:
     - if: $CI_PIPELINE_SOURCE == "merge_request_event"
       when: always
+    - if: $CI_PIPELINE_SOURCE == "push"
+      when: always
   artifacts:
     paths:
       - gstlal-calibration-*.tar.*
@@ -70,6 +72,8 @@ srpm:
   rules:
     - if: $CI_PIPELINE_SOURCE == "merge_request_event"
       when: always
+    - if: $CI_PIPELINE_SOURCE == "push"
+      when: always
 
 # Build rpms
 build:
@@ -86,6 +90,8 @@ build:
   rules:
     - if: $CI_PIPELINE_SOURCE == "merge_request_event"
       when: always
+    - if: $CI_PIPELINE_SOURCE == "push"
+      when: always
 
 # Lint rpms
 rpmlint:
@@ -103,6 +109,11 @@ rpmlint:
   script:
     # lint the built rpms _and_ the installed ones (for extra checks)
     - rpmlint *.rpm "*gstlal-calibration*"
+  rules:
+    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
+      when: always
+    - if: $CI_PIPELINE_SOURCE == "push"
+      when: always
   allow_failure: true
 
 # Tests
@@ -198,6 +209,11 @@ docker:rl8:
     - pushes
   except:
     - /gstlal-([a-z]+-|)[0-9]+\.[0-9]+\.[0-9]+-v[0-9]+/
+  rules:
+    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
+      when: always
+    - if: $CI_PIPELINE_SOURCE == "push"
+      when: always
 
 docker-release:rl8:
   interruptible: true
@@ -250,3 +266,8 @@ flake8:
     # these are presented in the code-quality box in the
     # merge_request UI
     FLAKE8_OPTIONS: "--exit-zero"
+  rules:
+    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
+      when: always
+    - if: $CI_PIPELINE_SOURCE == "push"
+      when: always