diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 56133e9f6a33315c463fa6997bdaac4b75da6b41..7ad4c96d0f3f6b61f5b649bf9c9c1b9cc12eab3e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -38,6 +38,16 @@ stages:
     - php --version
     - composer phpunit-integration
 
+.template: &job-deploy-template
+  image: wpdesknet/amazon-svn-deploy
+  stage: deploy
+  dependencies:
+    - build to deploy
+  retry: 2
+  when: manual
+  only:
+    - tags
+
 build php:
   image: wpdesknet/phpunit-woocommerce:0-0
   stage: build
@@ -150,54 +160,30 @@ build to deploy:
     - tags
 
 deploy to shop:
-  image: wpdesknet/amazon-svn-deploy
-  stage: deploy
-  dependencies:
-    - build to deploy
-  retry: 2
+  <<: *job-deploy-template
   script:
-    - ls -l
     - /tmp/deploy_shop.sh ${CI_PROJECT_NAME} release.zip ${CI_PROJECT_NAME}.zip
     - 'curl -X POST --data-urlencode "payload={\"text\": \"Projekt <https://gitlab.com/wpdesk/${CI_PROJECT_NAME}|${CI_PROJECT_NAME}> zdeployowany do sklepu w wersji ${CI_COMMIT_REF_NAME}\", }" https://hooks.slack.com/services/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'
-  only:
-    - tags
   environment:
     name: wpdesk shop
     url: https://wpdeskplugin.s3.amazonaws.com/${CI_PROJECT_NAME}.zip
-  when: manual
 
 deploy to demo:
-  image: wpdesknet/amazon-svn-deploy
-  stage: deploy
-  dependencies:
-    - build to deploy
-  retry: 2
+  <<: *job-deploy-template
   script:
-    - ls -l
     - /tmp/deploy_demo.sh release/${CI_PROJECT_NAME} ${CI_PROJECT_NAME}
     - 'curl -X POST --data-urlencode "payload={\"text\": \"Projekt <https://gitlab.com/wpdesk/${CI_PROJECT_NAME}|${CI_PROJECT_NAME}> zdeployowany do demo w wersji ${CI_COMMIT_REF_NAME}\", }" https://hooks.slack.com/services/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'
-  only:
-    - tags
   environment:
-    name: wpdesk shop
-    url: https://wpdeskplugin.s3.amazonaws.com/${CI_PROJECT_NAME}.zip
-  when: manual
+    name: wpdesk demo
+    url: https://demo.wpdesk.org
 
 deploy to repository:
-  image: wpdesknet/amazon-svn-deploy
-  stage: deploy
-  dependencies:
-    - build to deploy
-  retry: 2
+  <<: *job-deploy-template
   script:
-    - ls -l
     - rm -rf /tmp/svn-repository
     - mkdir /tmp/svn-repository
     - /tmp/deploy_repository.sh ${CI_PROJECT_NAME} release/${CI_PROJECT_NAME} /tmp/svn-repository
     - 'curl -X POST --data-urlencode "payload={\"text\": \"Projekt <https://gitlab.com/wpdesk/${CI_PROJECT_NAME}|${CI_PROJECT_NAME}> zdeployowany do repozytorium WP w wersji ${CI_COMMIT_REF_NAME}\", }" https://hooks.slack.com/services/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'
-  only:
-    - tags
   environment:
     name: wordpress repository
     url: https://downloads.wordpress.org/plugin/${CI_PROJECT_NAME}.${CI_COMMIT_REF_NAME}.zip
-  when: manual
\ No newline at end of file