diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c5630741b2cd373416558c1ac5d3f9f6a388c948..6de72fe855871efa4fe5bedf6485713088e59531 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,8 @@
 stages:
   - checks
+  - quick-test
   - test
+  - expensive-test
   - release
 
 variables:
@@ -242,21 +244,21 @@ test:linux:stack:
 ######## bootstrap test ########
 
 test:linux:bootstrap_script:
-  stage: test
+  stage: quick-test
   before_script:
     - ./.gitlab/before_script/linux/install_deps_minimal.sh
   script:
     - ./.gitlab/script/ghcup_bootstrap.sh
   variables:
-    GHC_VERSION: "8.10.6"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
   extends:
     - .debian
     - .root_cleanup
   needs: []
 
 test:windows:bootstrap_powershell_script:
-  stage: test
+  stage: quick-test
   script:
     - ./scripts/bootstrap/bootstrap-haskell.ps1 -InstallDir $CI_PROJECT_DIR -BootstrapUrl $CI_PROJECT_DIR/bootstrap-haskell -InBash
   after_script:
@@ -265,8 +267,8 @@ test:windows:bootstrap_powershell_script:
     - "[Environment]::SetEnvironmentVariable('CABAL_DIR', $null, [System.EnvironmentVariableTarget]::User)"
     - bash ./.gitlab/after_script.sh
   variables:
-    GHC_VERSION: "8.10.6"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
   extends:
     - .windows
   needs: []
@@ -277,19 +279,19 @@ test:linux:
   stage: test
   extends: .test_ghcup_version:linux
   variables:
-    GHC_VERSION: "8.10.6"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
   needs: []
 
 test:linux:hls:
-  stage: test
+  stage: expensive-test
   extends:
     - .test_ghcup_version
     - .debian
   variables:
     GHC_VERSION: "8.10.7"
     HLS_TARGET_VERSION: "1.4.0"
-    CABAL_VERSION: "3.6.0.0"
+    CABAL_VERSION: "3.6.2.0"
   needs: []
   when: manual
   allow_failure: true
@@ -299,14 +301,14 @@ test:linux:hls:
     - ./.gitlab/script/ghcup_hls.sh
 
 test:linux:cross-armv7:
-  stage: test
+  stage: expensive-test
   extends:
     - .test_ghcup_version
     - .debian
   variables:
-    GHC_VERSION: "8.10.5"
-    GHC_TARGET_VERSION: "8.10.6"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.6"
+    GHC_TARGET_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
     CROSS: "arm-linux-gnueabihf"
   needs: []
   when: manual
@@ -317,15 +319,15 @@ test:linux:cross-armv7:
     - ./.gitlab/script/ghcup_cross.sh
 
 test:linux:git:hadrian:
-  stage: test
+  stage: expensive-test
   extends:
     - .test_ghcup_version
     - .debian
   variables:
-    GHC_VERSION: "8.10.6"
+    GHC_VERSION: "8.10.7"
     GHC_GIT_TAG: "ghc-9.0.1-release"
     GHC_GIT_VERSION: "9.0.1"
-    CABAL_VERSION: "3.4.0.0"
+    CABAL_VERSION: "3.6.2.0"
     CROSS: ""
   needs: []
   when: manual
@@ -342,8 +344,8 @@ test:linux:32bit:
   stage: test
   extends: .test_ghcup_version:linux32
   variables:
-    GHC_VERSION: "8.10.6"
-    CABAL_VERSION: "3.2.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
   needs: []
 
 ######## arm tests ########
@@ -352,8 +354,8 @@ test:linux:armv7:
   stage: test
   extends: .test_ghcup_version:armv7
   variables:
-    GHC_VERSION: "8.10.4"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
     CROSS: ""
   when: manual
   needs: []
@@ -362,8 +364,8 @@ test:linux:aarch64:
   stage: test
   extends: .test_ghcup_version:aarch64
   variables:
-    GHC_VERSION: "8.10.4"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
     CROSS: ""
   when: manual
   needs: []
@@ -374,16 +376,16 @@ test:mac:
   stage: test
   extends: .test_ghcup_version:darwin
   variables:
-    GHC_VERSION: "8.10.4"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
   needs: []
 
 test:mac:aarch64:
   stage: test
   extends: .test_ghcup_version:darwin:aarch64
   variables:
-    GHC_VERSION: "8.10.6"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
   needs: []
   allow_failure: true
 
@@ -394,8 +396,8 @@ test:freebsd12:
   stage: test
   extends: .test_ghcup_version:freebsd12
   variables:
-    GHC_VERSION: "8.10.4"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
   allow_failure: true # freebsd runners are unreliable
   when: manual
   needs: []
@@ -404,8 +406,8 @@ test:freebsd13:
   stage: test
   extends: .test_ghcup_version:freebsd13
   variables:
-    GHC_VERSION: "8.10.4"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
   allow_failure: true # freebsd runners are unreliable
   when: manual
   needs: []
@@ -416,8 +418,8 @@ test:windows:
   stage: test
   extends: .test_ghcup_version:windows
   variables:
-    GHC_VERSION: "8.10.6"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
   needs: []
 
 # test:windows:scoop:
@@ -437,8 +439,8 @@ release:linux:64bit:
     - ./.gitlab/before_script/linux/alpine/install_deps.sh
   variables:
     ARTIFACT: "x86_64-linux-ghcup"
-    GHC_VERSION: "8.10.6"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
 
 
 release:linux:32bit:
@@ -451,8 +453,8 @@ release:linux:32bit:
     - ./.gitlab/before_script/linux/alpine/install_deps.sh
   variables:
     ARTIFACT: "i386-linux-ghcup"
-    GHC_VERSION: "8.10.6"
-    CABAL_VERSION: "3.2.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
 
 release:linux:armv7:
   stage: release
@@ -464,8 +466,8 @@ release:linux:armv7:
     - ./.gitlab/before_script/linux/install_deps.sh
   variables:
     ARTIFACT: "armv7-linux-ghcup"
-    GHC_VERSION: "8.10.4"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
     CROSS: ""
 
 release:linux:aarch64:
@@ -478,8 +480,8 @@ release:linux:aarch64:
     - ./.gitlab/before_script/linux/install_deps.sh
   variables:
     ARTIFACT: "aarch64-linux-ghcup"
-    GHC_VERSION: "8.10.4"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
     CROSS: ""
 
 ######## darwin release ########
@@ -495,8 +497,8 @@ release:darwin:
     - ./.gitlab/before_script/darwin/install_deps.sh
   variables:
     ARTIFACT: "x86_64-apple-darwin-ghcup"
-    GHC_VERSION: "8.10.6"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
     MACOSX_DEPLOYMENT_TARGET: "10.7"
 
 release:darwin:aarch64:
@@ -528,8 +530,8 @@ release:darwin:aarch64:
     runInNixShell ./.gitlab/script/ghcup_release.sh 2>&1
   variables:
     ARTIFACT: "aarch64-apple-darwin-ghcup"
-    GHC_VERSION: "8.10.6"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
     MACOSX_DEPLOYMENT_TARGET: "10.7"
   allow_failure: true
 
@@ -547,8 +549,8 @@ release:freebsd12:
     - ./.gitlab/before_script/freebsd/install_deps.sh
   variables:
     ARTIFACT: "x86_64-portbld-freebsd-ghcup"
-    GHC_VERSION: "8.10.6"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
   allow_failure: true
 
 release:freebsd13:
@@ -562,8 +564,8 @@ release:freebsd13:
     - ./.gitlab/before_script/freebsd/install_deps.sh
   variables:
     ARTIFACT: "x86_64-portbld-freebsd-ghcup"
-    GHC_VERSION: "8.10.6"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
   allow_failure: true
 
 ######## windows release ########
@@ -579,8 +581,8 @@ release:windows:
     - bash ./.gitlab/before_script/windows/install_deps.sh
   variables:
     ARTIFACT: "x86_64-mingw64-ghcup"
-    GHC_VERSION: "8.10.6"
-    CABAL_VERSION: "3.4.0.0"
+    GHC_VERSION: "8.10.7"
+    CABAL_VERSION: "3.6.2.0"
 
 ######## hlint ########