diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2132a435bc18dc438b4bba3fddced57653141410..dcb6e123af9fec3eb00cec0bb256f46af28c92a8 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -16,12 +16,6 @@ variables:
   - if: $CI_COMMIT_BRANCH =~ /^([0-9]+\.)?[0-9]+\.x$/ && $CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_ROOT_NAMESPACE == "project"
   # Deploy when we push a tag.
   - if: $CI_COMMIT_TAG
-  # Deploy in scheduled nightly builds.
-  - if: $CI_PIPELINE_SOURCE == "schedule"
-  # Deploy when manually triggered via the web UI.
-  - if: $CI_PIPELINE_SOURCE == "web"
-  # Deploy when manually triggered via the Web IDE.
-  - if: $CI_PIPELINE_SOURCE == "webide"
   # Don't deploy in any other circumstance.
   - when: never
 
@@ -30,6 +24,12 @@ workflow:
   rules:
     # Run on merge requests.
     - if: $CI_MERGE_REQUEST_IID || $CI_PIPELINE_SOURCE == 'merge_request_event'
+    # Run on a regular schedule (i.e., nightly builds).
+    - if: $CI_PIPELINE_SOURCE == "schedule"
+    # Run when manually triggered via the web UI.
+    - if: $CI_PIPELINE_SOURCE == "web"
+    # Run when manually triggered via the Web IDE.
+    - if: $CI_PIPELINE_SOURCE == "webide"
     # Also run in any circumstance where we'd do a deployment.
     - *deploy-rules