diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c98d84ab728f7923f787a041c55ded0ce68042c1..935dc6d7ff6fd9be71cbd018579fb9c5ca4a8041 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -45,7 +45,7 @@ variables:
   COMPOSER: composer.json
   # Let composer know what self.version means.
   COMPOSER_ROOT_VERSION: "${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}${CI_COMMIT_BRANCH}-dev"
-  CONCURRENCY: 32
+  CONCURRENCY: 24
   GIT_DEPTH: "3"
 
 
@@ -265,6 +265,15 @@ stages:
     reports:
       codequality: phpcs-quality-report.json
 
+'🧹 JavaScript linting (eslint)':
+  <<: [ *with-yarn-cache, *junit-artifacts, *default-job-settings-lint ]
+  stage: 🪄 Lint
+  script:
+    - yarn --cwd=./core run -s lint:core-js-passing --format gitlab
+  artifacts:
+    reports:
+      codequality: eslint-quality-report.json
+
 '🧹 CSS linting (stylelint)':
   <<: [ *with-yarn-cache, *junit-artifacts, *default-job-settings-lint ]
   stage: 🪄 Lint
@@ -281,15 +290,6 @@ stages:
     - yarn run --cwd=./core build:css --check
     - cd core && yarn run -s check:ckeditor5
 
-'🧹 JavaScript linting (eslint)':
-  <<: [ *with-yarn-cache, *junit-artifacts, *default-job-settings-lint ]
-  stage: 🪄 Lint
-  script:
-    - yarn --cwd=./core run -s lint:core-js-passing --format gitlab
-  artifacts:
-    reports:
-      codequality: eslint-quality-report.json
-
 '📔 Spell-checking':
   <<: [ *with-yarn-cache, *default-job-settings-lint ]
   stage: 🪄 Lint
diff --git a/.gitlab-ci/pipeline.yml b/.gitlab-ci/pipeline.yml
index c10caddde8db700d777bb0ab36a480d478b224f8..06c2a4810c7f9d7aeaf5e03c5be70d393827a3bc 100644
--- a/.gitlab-ci/pipeline.yml
+++ b/.gitlab-ci/pipeline.yml
@@ -179,22 +179,10 @@ stages:
 # Test Jobs
 ################
 
-'⚡️ PHPUnit Unit':
-  <<: [ *with-composer-cache, *phpunit-artifacts, *setup-webserver, *run-tests, *default-job-settings ]
-  stage: 🗜️ Test
-  services:
-    # There are some unit tests that need a database.
-    # @todo Remove after https://www.drupal.org/project/drupal/issues/3386217
-    - <<: *with-database
-  variables:
-    <<: *test-variables
-    TESTSUITE: PHPUnit-Unit
-    CONCURRENCY: "$CONCURRENCY"
-
 '🌐️️ PHPUnit Functional':
   <<: [ *with-composer-cache, *phpunit-artifacts, *setup-webserver, *run-tests, *default-job-settings ]
   stage: 🗜️ Test
-  parallel: 6
+  parallel: 7
   variables:
     <<: *test-variables
     TESTSUITE: PHPUnit-Functional
@@ -253,6 +241,7 @@ stages:
 '⚙️️ PHPUnit Kernel':
   <<: [*with-composer-cache, *phpunit-artifacts, *setup-webserver, *run-tests, *default-job-settings ]
   stage: 🗜️ Test
+  parallel: 2
   variables:
     <<: *test-variables
     TESTSUITE: PHPUnit-Kernel
@@ -263,6 +252,7 @@ stages:
 '🖱️️️ PHPUnit Functional Javascript':
   <<: [ *with-composer-cache, *phpunit-artifacts, *setup-webserver, *run-tests, *default-job-settings ]
   stage: 🗜️ Test
+  parallel: 2
   variables:
     <<: *test-variables
     TESTSUITE: PHPUnit-FunctionalJavascript
@@ -281,6 +271,18 @@ stages:
   services:
     - <<: *with-database
 
+'⚡️ PHPUnit Unit':
+  <<: [ *with-composer-cache, *phpunit-artifacts, *setup-webserver, *run-tests, *default-job-settings ]
+  stage: 🗜️ Test
+  services:
+    # There are some unit tests that need a database.
+    # @todo Remove after https://www.drupal.org/project/drupal/issues/3386217
+    - <<: *with-database
+  variables:
+    <<: *test-variables
+    TESTSUITE: PHPUnit-Unit
+    CONCURRENCY: "$CONCURRENCY"
+
 '🦉️️️ Nightwatch':
   <<: [ *with-composer-and-yarn, *setup-webserver, *default-job-settings ]
   stage: 🗜️ Test