diff --git a/.gitlab/ci/package-and-test/main.gitlab-ci.yml b/.gitlab/ci/package-and-test/main.gitlab-ci.yml
index 117a78a73255ffddbc848c2671072b3f5863d080..b4e6db74f7caa1b11ccda382808f75583a2304be 100644
--- a/.gitlab/ci/package-and-test/main.gitlab-ci.yml
+++ b/.gitlab/ci/package-and-test/main.gitlab-ci.yml
@@ -10,6 +10,11 @@ include:
       - /ci/allure-report.yml
       - /ci/knapsack-report.yml
 
+stages:
+  - test
+  - report
+  - notify
+
 # ==========================================
 # Templates
 # ==========================================
@@ -72,8 +77,8 @@ trigger-omnibus:
 
 download-knapsack-report:
   extends:
-    - .ruby-image
     - .bundle-install
+    - .ruby-image
     - .rules:prepare
   stage: .pre
   script:
@@ -87,8 +92,8 @@ download-knapsack-report:
 # e2e test jobs run on separate runner which has separate cache setup
 cache-gems:
   extends:
-    - .ruby-image
     - .bundle-install
+    - .ruby-image
     - .qa-cache-push
     - .rules:prepare
   stage: .pre
@@ -441,28 +446,29 @@ allure-report:
   extends:
     - .generate-allure-report-base
     - .rules:report:allure-report
-  stage: .post
+  stage: report
   variables:
     GITLAB_AUTH_TOKEN: $GITLAB_QA_MR_ALLURE_REPORT_TOKEN
     ALLURE_PROJECT_PATH: $CI_PROJECT_PATH
     ALLURE_MERGE_REQUEST_IID: $CI_MERGE_REQUEST_IID
     ALLURE_JOB_NAME: e2e-package-and-test
+    GIT_STRATEGY: none
 
 upload-knapsack-report:
   extends:
     - .generate-knapsack-report-base
-    - .ruby-image
     - .bundle-install
+    - .ruby-image
     - .rules:report:process-results
-  stage: .post
+  stage: report
   when: always
 
 relate-test-failures:
-  stage: .post
   extends:
-    - .ruby-image
     - .bundle-install
+    - .ruby-image
     - .rules:report:process-results
+  stage: report
   variables:
     QA_FAILURES_REPORTING_PROJECT: gitlab-org/gitlab
     QA_FAILURES_MAX_DIFF_RATIO: "0.15"
@@ -476,14 +482,15 @@ relate-test-failures:
         --max-diff-ratio "$QA_FAILURES_MAX_DIFF_RATIO"
 
 generate-test-session:
-  stage: .post
   extends:
-    - .ruby-image
     - .bundle-install
+    - .ruby-image
     - .rules:report:process-results
+  stage: report
   variables:
     QA_TESTCASE_SESSIONS_PROJECT: gitlab-org/quality/testcase-sessions
     GITLAB_QA_ACCESS_TOKEN: $QA_TEST_SESSION_TOKEN
+    GITLAB_CI_API_TOKEN: $QA_GITLAB_CI_TOKEN
   when: always
   script:
     - |
@@ -499,12 +506,10 @@ generate-test-session:
 notify-slack:
   extends:
     - .notify-slack-qa
-    - .ruby-image
     - .bundle-install
+    - .ruby-image
     - .rules:report:process-results
-  stage: .post
-  needs:
-    - generate-test-session
+  stage: notify
   variables:
     ALLURE_JOB_NAME: e2e-package-and-test
     SLACK_ICON_EMOJI: ci_failing
diff --git a/qa/Gemfile.lock b/qa/Gemfile.lock
index 91b6f9214fc5d08f74263d1673e31b5a3c815a36..741619a253232d799fb85d0709b6558129d08513 100644
--- a/qa/Gemfile.lock
+++ b/qa/Gemfile.lock
@@ -11,8 +11,8 @@ GEM
     adamantium (0.2.0)
       ice_nine (~> 0.11.0)
       memoizable (~> 0.4.0)
-    addressable (2.8.0)
-      public_suffix (>= 2.0.2, < 5.0)
+    addressable (2.8.1)
+      public_suffix (>= 2.0.2, < 6.0)
     airborne (0.3.4)
       activesupport
       rack
@@ -118,7 +118,7 @@ GEM
     gitlab (4.18.0)
       httparty (~> 0.18)
       terminal-table (>= 1.5.1)
-    gitlab-qa (8.4.0)
+    gitlab-qa (8.4.1)
       activesupport (~> 6.1)
       gitlab (~> 4.18.0)
       http (~> 5.0)
@@ -223,7 +223,7 @@ GEM
     pry-byebug (3.5.1)
       byebug (~> 9.1)
       pry (~> 0.10)
-    public_suffix (4.0.7)
+    public_suffix (5.0.0)
     racc (1.6.0)
     rack (2.2.3.1)
     rack-test (1.1.0)