diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b30dad07d408cbb46271be5d0ae53b7f55b8f78c..4cc8dfd3e62008b61f5ec10dce709665a020b049 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,6 +2,7 @@ image: python:3.11-bullseye
 
 stages:
   - build
+  - format
   - test-jobs
   - test-tasks
 
@@ -23,12 +24,11 @@ build-env:
     paths:
       - $POETRY_CACHE_DIR/virtualenvs/
 
-before_script:
-  - export VIRTUALENV_NAME=$(ls $POETRY_CACHE_DIR/virtualenvs/)
-  - source $POETRY_CACHE_DIR/$VIRTUALENV_NAME/bin/activate
-
 format:
+  stage: format
   script:
+    - export VIRTUALENV_NAME=$(ls $POETRY_CACHE_DIR/virtualenvs/)
+    - source $POETRY_CACHE_DIR/$VIRTUALENV_NAME/bin/activate
     - poetry run pre-commit install
     - poetry run yapf -i -r -p .
     - poetry run ruff .
@@ -37,12 +37,15 @@ format:
 test-jobs:
   stage: test-jobs
   script:
+    - export VIRTUALENV_NAME=$(ls $POETRY_CACHE_DIR/virtualenvs/)
+    - source $POETRY_CACHE_DIR/$VIRTUALENV_NAME/bin/activate  
     - export PYTHONPATH="$PYTHONPATH:$CI_PROJECT_DIR/jobs/src"
     - poetry run pytest jobs/tests/
 
 test-tasks:
   stage: test-tasks
   script:
+    - export VIRTUALENV_NAME=$(ls $POETRY_CACHE_DIR/virtualenvs/)
+    - source $POETRY_CACHE_DIR/$VIRTUALENV_NAME/bin/activate
     - export PYTHONPATH="$PYTHONPATH:$CI_PROJECT_DIR/tasks/src"
-
     - poetry run pytest tasks/tests/
\ No newline at end of file