diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 26e3a48a980c7a20df5fdd9a6ba2d480c6ce66b6..aa213ba7bd52c3314f553166afa34258d2cf5cbe 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -23,12 +23,10 @@ stages:
 
 workflow:
     rules:
+        -   if: $CI_COMMIT_TAG
         -   if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
             when: never
         -   if: $CI_PIPELINE_SOURCE == "merge_request_event"
-        -   if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
-            when: never
-        -   if: $CI_COMMIT_TAG && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
         -   if: $CI_COMMIT_BRANCH
 
 
@@ -47,6 +45,7 @@ variables:
     LM_PYTHON_VERSION: "3.9"
     SAFETY_POLICY_FILE: "$CI_PROJECT_DIR/.safety-policy.yml"
     SAFETY_COLOR: "True"
+    CI_SERVER_URL: "https://etulab.univ-amu.fr"
 
 include:
     -   template: Jobs/Dependency-Scanning.gitlab-ci.yml
@@ -58,10 +57,12 @@ include:
 dependency_scanning:
     cache: [ ]
     stage: 🔒️ security 🔒️
+    interruptible: true
 
 .secret-analyzer:
     cache: [ ]
     stage: 🔒️ security 🔒️
+    interruptible: true
 
 
 # Install dependencies
@@ -79,6 +80,7 @@ dependency_scanning:
                 - ${CI_PROJECT_DIR}/.cache/pip
             policy: pull-push
     stage: .pre
+    interruptible: true
     before_script:
         - python --version
         - pip install --upgrade pip
@@ -102,6 +104,7 @@ dependency_scanning:
 # Pre script
 
 .load_env:
+    interruptible: true
     cache:
         -   key:
                 files:
@@ -143,6 +146,7 @@ dependency_scanning:
                 - $CI_PROJECT_DIR/**/*.yml
                 - $CI_PROJECT_DIR/**/*.yaml
         - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
+        - if: $CI_COMMIT_TAG
     script:
         - yamllint src tests
 
@@ -153,6 +157,7 @@ dependency_scanning:
         -   changes:
                 - $CI_PROJECT_DIR/**/*.md
         -   if: $CI_PIPELINE_SOURCE == 'merge_request_event'
+        -   if: $CI_COMMIT_TAG
     stage:
         🎨 format 🎨
     before_script:
@@ -348,34 +353,42 @@ dependency_scanning:
     stage: 🚀 release 🚀
     rules:
         # Run this job when a tag is created manually
-        -   if: $CI_COMMIT_TAG && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+        -   if: $CI_COMMIT_TAG
 
-.load_env_for_release:
+🔧 publish package 🚧:
     extends:
         - .load_env
         - .common_release
-
-🔧 build package 🚧:
-    extends: .load_env_for_release
     needs:
-        - !reference [ .load_env_for_release, needs ]
+        - !reference [ .load_env, needs ]
         - 🤞 coverage 🔍️
+    before_script:
+        - export PATH="$PATH":"$HOME/.local/bin"
+        - pip install --user pipx
+        - pipx ensurepath
+        - pipx install poetry
     script:
+        - poetry config repositories.gitlab $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/pypi
         - poetry build
+        - poetry publish -r gitlab --username=ci_cd --password=$PUBLISHER_PASSWORD
     artifacts:
         when: on_success
         paths:
             - dist
 
-🔖 release package 🚧:
-    cache: [ ]
+🔖 release version 🚧:
+    cache: []
     extends: .common_release
     needs:
-        - 🔧 build package 🚧
+        - 🔧 publish package 🚧
     image: registry.gitlab.com/gitlab-org/release-cli:latest
     script:
-        - echo "Running the release job."
+        - echo "Release created"
     release:
         tag_name: $CI_COMMIT_TAG
-        name: 'Release $CI_COMMIT_TAG'
+        name: 'Release ${CI_COMMIT_TAG}'
         description: 'Release created using the release-cli.'
+        assets:
+            links:
+                -   name: '${CI_PROJECT_NAME} PyPi package'
+                    url: '${CI_SERVER_URL}/${CI_PROJECT_PATH}/-/packages'
diff --git a/pyproject.toml b/pyproject.toml
index 4e57367cf1a8b66315732f9e8977a8e04b9c9a58..66bb3d790cef09c0aa4b193c24e7bcab6803da85 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -8,7 +8,7 @@ The Caesar algorithm is provided for the cipher method and decipher method.\
 authors = ["Axel DAVID <axel.david@etu.univ-amu.fr>"]
 readme = "README.md"
 license = "GPL-3.0-or-later"
-packages = [{ include = "src" }]
+packages = [{ include = "vigenere_api", from = "src" }]
 homepage = "https://etulab.univ-amu.fr/d19006523/vigenere-api"
 repository = "https://etulab.univ-amu.fr/d19006523/vigenere-api"
 keywords = ["vigenere", "caesar", "API", "Python"]