diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 744a4682507aaa7217ed5091c7a9ded2b2a2748a..50db7fc07bbe0f3f4b2995ee74cd6b86e4e8b6d8 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,13 +1,11 @@
-#Code: https://github.com/lucendio/lecture-devops-code/blob/master/tutorials/define-and-run-pipeline/.gitlab-ci.yml
-# und Vorlesung
-#https://docs.gitlab.com/ee/user/packages/container_registry/build_and_push_images.html
-#https://docs.gitlab.com/ee/ci/yaml/workflow.html
-
 workflow:
   rules:
     - if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "main"
       when: always
 
+variables:
+  version: 0.0.$CI_PIPELINE_IID
+
 stages:
   - 'build'
   - 'test'
@@ -24,41 +22,36 @@ job_build:
   image: 'mirror.gcr.io/library/golang:1.21'
   parallel:
     matrix:
-      - GOOS: 
-        - 'linux'
-        - 'windows'
-        - 'darwin'
-        GOARCH:
-          - 'amd64'
-          - 'arm64'
+      - GOOS: ['linux', 'windows', 'darwin']
+        GOARCH: ['amd64', 'arm64']
   before_script:
     - mkdir -p ./artifacts
-  script: 
+  script:
     - |
-        go build \
-          -o ./artifacts/webservice_${GOOS}_${GOARCH}.bin \
-          ./*.go
+      go build \
+        -o ./artifacts/webservice_${GOOS}_${GOARCH}.bin \
+        ./*.go
   artifacts:
     paths:
       - ./artifacts
 
 job_publish:
   stage: 'publish'
-  rules: 
   image: 'public.ecr.aws/lts/ubuntu:22.04'
   tags:
     - docker-privileged
   dependencies:
     - job_build
-  before-script:
+  before_script:
     - apt update
     - apt install -y ca-certificates curl
     - update-ca-certificates
   script:
     - |
       for artifact in ./artifacts/*; do
+        chmod +x ${artifact}
         curl \
           --header "Job-TOKEN: ${CI_JOB_TOKEN}" \
           --upload-file ${artifact} \
-          "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/artifacts/latest/"
+          "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/artifacts/${version}/"
       done
\ No newline at end of file