diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 61d71fa0fe8eeb94afe86e7b9e7e2ce8b6cbcea8..2e5c0804c678506134104cfcd747c3f256b91d22 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,18 +3,35 @@ stages:
   - distribute
 
 build:
+  rules:
+    - if: $CI_COMMIT_TAG
   stage: build
   image: rust:1-buster
   script:
-    - cargo build --release
+    - cargo build --release --target=x86_64-unknown-linux-gnu
+    - cargo build --release --target=x86_64-pc-windows-gnu
+    - cargo build --release --target=x86_64-apple-darwin
+    - cargo build --release --target=aarch64-unknown-linux-gnu
+    - cargo build --release --target=i686-unknown-linux-gnu
+    - cargo build --release --target=i686-pc-windows-gnu
+    - cargo build --release --target=armv7-unknown-linux-gnueabihf
   artifacts:
     paths:
-      - target/release/amd-scrapper
+      - target/
+
+binary:
   rules:
     - if: $CI_COMMIT_TAG
-
+  stage: distribute
+  dependencies:
+    - build
+  image: curlimages/curl:latest
+  script:
+    - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ./target/release/amd-scrapper "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/my_package/${$CI_COMMIT_TAG}/amd-scrapper"'
 
 container:
+  rules:
+    - if: $CI_COMMIT_TAG
   stage: distribute
   dependencies:
     - build
@@ -29,5 +46,4 @@ container:
       --context "${CI_PROJECT_DIR}"
       --dockerfile "${CI_PROJECT_DIR}/Dockerfile"
       --destination "${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}"
-  rules:
-    - if: $CI_COMMIT_TAG
+