diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index f44d6803af92608ae5836e3cd0987044515e5396..ecfceab18b97586994d47fe0a2da28ed8143df68 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -31,11 +31,9 @@ jobs:
 
     - name: Install GHCup
       uses: haskell/ghcup-setup@v1
-
-    - name: Setup toolchain
-      run: |
-        ghcup install ghc --set ${{ matrix.ghc }}
-        ghcup install cabal --set latest
+      with:
+        ghc: ${{ matrix.ghc }}
+        cabal: latest
 
     - if: runner.os == 'macOS'
       name: Install system deps via brew
@@ -75,11 +73,9 @@ jobs:
 
     - name: Install GHCup
       uses: haskell/ghcup-setup@v1
-
-    - name: Setup toolchain
-      run: |
-        ghcup install ghc --set latest
-        ghcup install cabal --set latest
+      with:
+        ghc: latest
+        cabal: latest
 
     - uses: actions/checkout@v4
 
@@ -102,11 +98,9 @@ jobs:
 
     - name: Install GHCup
       uses: haskell/ghcup-setup@v1
-
-    - name: Setup toolchain
-      run: |
-        ghcup install ghc --set latest
-        ghcup install cabal --set latest
+      with:
+        ghc: latest
+        cabal: latest
 
     - uses: actions/checkout@v4
     - name: Test
@@ -176,11 +170,9 @@ jobs:
 
       - name: Install GHCup
         uses: haskell/ghcup-setup@v1
-
-      - name: Setup toolchain
-        run: |
-          ghcup install ghc --set ${{ matrix.ghc }}
-          ghcup install cabal --set latest
+        with:
+          ghc: ${{ matrix.ghc }}
+          cabal: latest
 
       - name: Run build
         run: |