diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d2c34508dcdc7eef7403d0552d15186845b4c86d..5505e7bda5cb3e4ba8025e6f4241fca73fe361b3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -6,11 +6,19 @@ include:
     ref: "3.0.1"
     file: /php/packagist.yml
 
-gitlab-composer:
+.gitlab-composer:
   stage: deploy
   image: curlimages/curl
   interruptible: false
-  script:
-    - 'curl --user "__token__:$CI_JOB_TOKEN" --data "tag=$CI_COMMIT_TAG" --data "branch=$CI_COMMIT_BRANCH" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/composer"'
+
+gitlab-composer-tag:
+  extends: [.gitlab-composer]
+  script: 'curl --user "__token__:$CI_JOB_TOKEN" --data "tag=$CI_COMMIT_TAG" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/composer"'
+  rules:
+    - if: '$CI_COMMIT_TAG'
+
+gitlab-composer-branch:
+  extends: [.gitlab-composer]
+  script: 'curl --user "__token__:$CI_JOB_TOKEN" --data "branch=$CI_COMMIT_BRANCH" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/composer"'
   rules:
-    - if: '$CI_COMMIT_BRANCH || $CI_COMMIT_TAG'
+    - if: '$CI_COMMIT_BRANCH'