diff --git a/actual/pipeline.yml b/actual/pipeline.yml
index b768c27feadae1c331c17bbe60f8f8d3fd1d6480..7448b18d53a16c0178f32fdcc01fcee07a3dbb95 100644
--- a/actual/pipeline.yml
+++ b/actual/pipeline.yml
@@ -5,6 +5,10 @@ lint-actual:
 
 release-actual:
   stage: release
+  needs:
+    - lint-actual
+  rules:
+    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
   script:
     - apk add --no-cache git
     - helm plugin install https://github.com/chartmuseum/helm-push.git
diff --git a/imghost/pipeline.yml b/imghost/pipeline.yml
index 913bff0c4500fc651db9313bca1db80947ff110c..1c831125e6c177bc6e7056cc3cbfd1f9d698870e 100644
--- a/imghost/pipeline.yml
+++ b/imghost/pipeline.yml
@@ -5,6 +5,10 @@ lint-imghost:
 
 release-imghost:
   stage: release
+  needs:
+    - lint-imghost
+  rules:
+    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
   script:
     - apk add --no-cache git
     - helm plugin install https://github.com/chartmuseum/helm-push.git
diff --git a/jellyfin/pipeline.yml b/jellyfin/pipeline.yml
index 4d5137b67967cbecdb780d642cd12bf021006409..2506eaa49e233219134718519fdc5f17ff94db39 100644
--- a/jellyfin/pipeline.yml
+++ b/jellyfin/pipeline.yml
@@ -5,6 +5,10 @@ lint-jellyfin:
 
 release-jellyfin:
   stage: release
+  needs:
+    - lint-jellyfin
+  rules:
+    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
   script:
     - apk add --no-cache git
     - helm plugin install https://github.com/chartmuseum/helm-push.git
diff --git a/languagetool/pipeline.yml b/languagetool/pipeline.yml
index 269db7340493ac7e14ffcea72b9be8f02e2de01f..22a976bc41adebcded837af5d61b1ddbfd286d4b 100644
--- a/languagetool/pipeline.yml
+++ b/languagetool/pipeline.yml
@@ -5,6 +5,10 @@ lint-languagetool:
 
 release-languagetool:
   stage: release
+  needs:
+    - lint-languagetool
+  rules:
+    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
   script:
     - apk add --no-cache git
     - helm plugin install https://github.com/chartmuseum/helm-push.git
diff --git a/mailu/pipeline.yml b/mailu/pipeline.yml
index 48a68a8036fe1372917c6f70c619fff1ab197cd3..002c98a19f6cb3f80de7a890138940529de0e537 100644
--- a/mailu/pipeline.yml
+++ b/mailu/pipeline.yml
@@ -5,6 +5,10 @@ lint-mailu:
 
 release-mailu:
   stage: release
+  needs:
+    - lint-mailu
+  rules:
+    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
   script:
     - apk add --no-cache git
     - helm plugin install https://github.com/chartmuseum/helm-push.git
diff --git a/oauth2-proxy/pipeline.yml b/oauth2-proxy/pipeline.yml
index d953e105bd95c18cca2d720de82885381933e886..fc476a9036f32a5f8ebb90586d7a6b5f57f9cdf9 100644
--- a/oauth2-proxy/pipeline.yml
+++ b/oauth2-proxy/pipeline.yml
@@ -5,6 +5,10 @@ lint-oauth2-proxy:
 
 release-oauth2-proxy:
   stage: release
+  needs:
+    - lint-oauth2-proxy
+  rules:
+    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
   script:
     - apk add --no-cache git
     - helm plugin install https://github.com/chartmuseum/helm-push.git
diff --git a/quassel/pipeline.yml b/quassel/pipeline.yml
index 3bff89aa29cd00fadb0578f262b0965360f6fe89..d540fb347298406978f4dd595c172e28dc739a27 100644
--- a/quassel/pipeline.yml
+++ b/quassel/pipeline.yml
@@ -5,9 +5,12 @@ lint-quassel:
 
 release-quassel:
   stage: release
+  needs:
+    - lint-quassel
+  rules:
+    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
   script:
     - apk add --no-cache git
     - helm plugin install https://github.com/chartmuseum/helm-push.git
     - helm repo add --username gitlab-ci-token --password $CI_JOB_TOKEN repo ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/helm/stable
     - helm cm-push quassel repo
-