diff --git a/images/.utils/gitlab-ci.yaml b/images/.utils/gitlab-ci.yaml
index c3d8c9cebd2845b69cf9125920a000575c070ab3..76ff7567e044a7970649a1142bee64fafaa6f896 100644
--- a/images/.utils/gitlab-ci.yaml
+++ b/images/.utils/gitlab-ci.yaml
@@ -4,4 +4,18 @@ include:
 container-build:
   extends: .earthly-cloud
   script:
-    - earthly --use-inline-cache --save-inline-cache --ci --push +images
\ No newline at end of file
+    - earthly --use-inline-cache --save-inline-cache --ci +images
+  rules:
+    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "push"'
+      variables:
+        EARTHLY_PUSH: "true"
+      changes:
+        paths:
+          - images/**/*
+    - if: '$CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "push"'
+      changes:
+        paths:
+          - images/**/*
+        compare_to: main
+
+