diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8be0aae1dc76cce5ba552c1f2c32f83ba3fdea4e..738f5fafa14fb2982b7a21317375ee19627cd61a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -57,8 +57,10 @@ release:
   when: manual
   variables:
     TWINE_USERNAME: gitlab-ci-token       # Keep username same
-    TWINE_PASSWORD: $CI_JOB_TOKEN      # Use PAT stored in GitLab CI/CD Variables
+    TWINE_PASSWORD: $CI_JOB_TOKEN        # Use PAT stored in GitLab CI/CD Variables
   script:
-    - pip install build twine            # Install dependencies
-    - python -m build                    # Build the package
+    - cd backend/python-client            # Navigate to the folder where the package was generated
+    - python3 -m venv .venv
+    - source .venv/bin/activate
+    - pip install -U pip twine
     - twine upload --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi dist/*
\ No newline at end of file
diff --git a/make_openapi_client.sh b/make_openapi_client.sh
index 7aa8d4362417212be41523a119e4fbee1090f6e2..d267f3c0ab0683a6a2c634871d7d68d76e529087 100755
--- a/make_openapi_client.sh
+++ b/make_openapi_client.sh
@@ -34,12 +34,8 @@ fi
 cd python-client || exit
 python3 -m venv .venv
 source .venv/bin/activate
-pip install -U pip twine build
+pip install -U pip build
 python -m build
 
-# Upload package (only if in CI environment)
-if [[ -z "${CI_API_V4_URL}" || -z "${CI_PROJECT_ID}" ]]; then
-    echo "Skipping package upload—CI variables not set."
-else
-    twine upload --repository-url "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi" dist/*
-fi
\ No newline at end of file
+# Skip uploading the package. This will happen in the release stage.
+echo "Python client generated and package built successfully."
\ No newline at end of file